问题标签 [const-char]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 为什么 XDrawString 不采用“const char *”?
从 X11 看 XDrawString 的声明,它是
为什么第 6 个参数是类型“char *”而不是“const char *”?绘制字符串需要修改它吗?我见过很多人们传递常量字符串的例子。那不安全吗?
c - strtol、strtod 不安全吗?
似乎strtol()
并strtod()
有效地允许(并强制)你抛弃字符串中的常量:
上面,我自己没有进行任何演员表。但是,strtol()
基本上将 myconst char *
放入一个char *
for me 中,没有任何警告或任何东西。(事实上,它不允许你键入bar
as a const char *
,因此会强制进行不安全的类型更改。)这不是很危险吗?
c++ - 带有 const char* 变量的 printf 问题
我陷入了 printf 问题。如果我能在这里得到一些帮助,我将不胜感激:在下面的代码中,我可以看到字体系列在第一个 printf() 中被正确替换,但如果我将它设置为变量,我只会得到一个空字符串。我怎样才能把它放在一个变量中并拥有正确的值?我只是不想到处输入'font.family().family().string().utf8().data()'?
我用同样的方法做到了这一点:
'data()' 的签名是
utf8() 的签名是
谢谢你。
python - Python 到 C/C++ const char 问题
我正在用一些 C++ 代码扩展 Python。
我正在使用的功能之一具有以下签名:
(链接:http ://docs.python.org/release/1.5.2p2/ext/parseTupleAndKeywords.html )
感兴趣的参数是 kwlist。在上面的链接中,给出了如何使用此功能的示例。在示例中,kwlist 如下所示:
当我使用 g++ 编译它时,我收到警告:
因此,我可以将静态 char* 更改为静态 const char*。不幸的是,我无法更改 Python 代码。因此,通过此更改,我得到了不同的编译错误(无法将 char** 转换为 const char**)。根据我在这里阅读的内容,我可以打开编译器标志以忽略警告,或者我可以将 kwlist 定义中的每个常量字符串转换为 char *。目前,我正在做后者。其他解决方案是什么?
对不起,如果这个问题以前被问过。我是新来的。
c++ - std::cin >> *aa 导致总线错误
我有一个名为 PPString 的类:
PPString.h
PPString.cpp
我正在尝试设置stringValue
using std::cin
:
主文件
第一个使用 aconst char
作品,但第二个使用 achar
没有,我得到以下输出:
从 STDOUT 复制和粘贴
第二行是我输入的内容,然后按return
键。
谁能帮我解决这个问题?谢谢...
c - 如何正确地将函数返回的 const char* 转换为 C 中的 const char**?
简而言之,我想这样做:
但是,我知道您不能 & on rvalues。所以我坚持这个:
我可以忍受两条线。我是否在介绍此 hack 的问题?我不应该害怕传递stringPtr
出它声明的函数,对吧?
编辑:我很抱歉最初没有包括完整的上下文。我已经承担了暑期项目,即使用 OpenGL 进行图形从头开始用 C 语言构建视频游戏。我正在使用libconfig从文本文件中读取配置数据。
从配置文件中查找特定字符串的便捷函数之一如下所示:
分配值的方式意味着,如果您给函数一个 uninitialized value
,它会尝试取消对未定义垃圾的引用,这几乎总是会导致我出现段错误。我目前针对此问题的解决方法是先初始化value
到另一个指针,如下所示:
所以我试图找出重写函数最后一部分的最佳方法,这样我就不必执行这个两步初始化。我在想改变后的功能应该是这样的:
c++ - 在头文件中将值设置为“const char *”是否合适
我见过人们使用 2 种方法来声明和定义char *
.
方法1:头文件有以下内容
方法2:
头文件有以下声明:
cpp 文件具有以下定义:
- 方法1在某种程度上是错误的吗?
- 两者有什么区别 ?
const char * const var
我理解 " " 和 " "之间的区别const char * var
。如果在上述方法中,如果const char * const var
像方法 1 一样在标头中声明和定义“”,是否有意义?
c++ - 将字符串流的内容传递给以 char* 作为参数的函数
我有一个将 ppm 文件(一种图片格式)写入磁盘的功能。它将文件名作为 char* 数组。在我的主函数中,我使用字符串流和 << 运算符组合了一个文件名。然后,我想将结果传递给我的 ppm 函数。我在其他地方看到过这个讨论,通常使用非常复杂的方法(许多中间转换步骤)。
我所做的显示在下面的代码中,其他人通常在许多步骤中使用临时变量做的棘手部分是(char*) (PPM_file_name.str().data())
. 这样做的目的是使用 .str() 从 stringstream PPM_file_name 中提取字符串,然后使用 .data() 获取指向其实际内容的指针(这是一个 const char*),然后将其转换为常规 (char*)。更完整的例子如下。
到目前为止,我发现以下工作正常,但这让我感到不安,因为通常当其他人以看似更复杂的方式完成某事时,这是因为这是一种更安全的方式。那么,谁能告诉我我在这里所做的是否安全以及它的便携性如何?
谢谢。
c++ - 程序运行时挂起,编译良好
编辑:
只是想确定我是否使用const char c
正确?如果是,我在哪里犯了错误?我正在尝试在代码块上运行它。它编译得很好,但是当我尝试运行它时,它显示程序已停止工作。
谢谢。
c - 如何将 char 加入常量 char*?
我有一个连接两个常量 char* 并返回结果的函数。我想要做的是将一个 char 加入一个常量 char* 例如