问题标签 [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.

0 投票
3 回答
516 浏览

c - 为什么 XDrawString 不采用“const char *”?

从 X11 看 XDrawString 的声明,它是

为什么第 6 个参数是类型“char *”而不是“const char *”?绘制字符串需要修改它吗?我见过很多人们传递常量字符串的例子。那不安全吗?

0 投票
4 回答
5780 浏览

c - strtol、strtod 不安全吗?

似乎strtol()strtod()有效地允许(并强制)你抛弃字符串中的常量:

上面,我自己没有进行任何演员表。但是,strtol()基本上将 myconst char *放入一个char *for me 中,没有任何警告或任何东西。(事实上​​,它不允许你键入baras a const char *,因此会强制进行不安全的类型更改。)这不是很危险吗?

0 投票
3 回答
7488 浏览

c++ - 带有 const char* 变量的 printf 问题

我陷入了 printf 问题。如果我能在这里得到一些帮助,我将不胜感激:在下面的代码中,我可以看到字体系列在第一个 printf() 中被正确替换,但如果我将它设置为变量,我只会得到一个空字符串。我怎样才能把它放在一个变量中并拥有正确的值?我只是不想到处输入'font.family().family().string().utf8().data()'?

我用同样的方法做到了这一点:

'data()' 的签名是

utf8() 的签名是

谢谢你。

0 投票
2 回答
1669 浏览

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 *。目前,我正在做后者。其他解决方案是什么?

对不起,如果这个问题以前被问过。我是新来的。

0 投票
4 回答
443 浏览

c++ - std::cin >> *aa 导致总线错误

我有一个名为 PPString 的类:

PPString.h

PPString.cpp

我正在尝试设置stringValueusing std::cin

主文件

第一个使用 aconst char作品,但第二个使用 achar没有,我得到以下输出:

从 STDOUT 复制和粘贴

第二行是我输入的内容,然后按return键。

谁能帮我解决这个问题?谢谢...

0 投票
7 回答
1678 浏览

c - 如何正确地将函数返回的 const char* 转换为 C 中的 const char**?

简而言之,我想这样做:

但是,我知道您不能 & on rvalues。所以我坚持这个:

我可以忍受两条线。我是否在介绍此 hack 的问题?我不应该害怕传递stringPtr出它声明的函数,对吧?

编辑:我很抱歉最初没有包括完整的上下文。我已经承担了暑期项目,即使用 OpenGL 进行图形从头开始用 C 语言构建视频游戏。我正在使用libconfig从文本文件中读取配置数据。

从配置文件中查找特定字符串的便捷函数之一如下所示:

分配值的方式意味着,如果您给函数一个 uninitialized value,它会尝试取消对未定义垃圾的引用,这几乎总是会导致我出现段错误。我目前针对此问题的解决方法是先初始化value到另一个指针,如下所示:

所以我试图找出重写函数最后一部分的最佳方法,这样我就不必执行这个两步初始化。我在想改变后的功能应该是这样的:

0 投票
3 回答
21284 浏览

c++ - 在头文件中将值设置为“const char *”是否合适

我见过人们使用 2 种方法来声明和定义char *.

方法1:头文件有以下内容

方法2:
头文件有以下声明:

cpp 文件具有以下定义:

  1. 方法1在某种程度上是错误的吗?
  2. 两者有什么区别 ?
  3. const char * const var我理解 " " 和 " "之间的区别const char * var。如果在上述方法中,如果const char * const var像方法 1 一样在标头中声明和定义“”,是否有意义?
0 投票
6 回答
4040 浏览

c++ - 将字符串流的内容传递给以 char* 作为参数的函数

我有一个将 ppm 文件(一种图片格式)写入磁盘的功能。它将文件名作为 char* 数组。在我的主函数中,我使用字符串流和 << 运算符组合了一个文件名。然后,我想将结果传递给我的 ppm 函数。我在其他地方看到过这个讨论,通常使用非常复杂的方法(许多中间转换步骤)。

我所做的显示在下面的代码中,其他人通常在许多步骤中使用临时变量做的棘手部分是(char*) (PPM_file_name.str().data()). 这样做的目的是使用 .str() 从 stringstream PPM_file_name 中提取字符串,然后使用 .data() 获取指向其实际内容的指针(这是一个 const char*),然后将其转换为常规 (char*)。更完整的例子如下。

到目前为止,我发现以下工作正常,但这让我感到不安,因为通常当其他人以看似更复杂的方式完成某事时,这是因为这是一种更安全的方式。那么,谁能告诉我我在这里所做的是否安全以及它的便携性如何?

谢谢。

0 投票
6 回答
259 浏览

c++ - 程序运行时挂起,编译良好

编辑:

只是想确定我是否使用const char c正确?如果是,我在哪里犯了错误?我正在尝试在代码块上运行它。它编译得很好,但是当我尝试运行它时,它显示程序已停止工作。

谢谢。

0 投票
3 回答
2617 浏览

c - 如何将 char 加入常量 char*?

我有一个连接两个常量 char* 并返回结果的函数。我想要做的是将一个 char 加入一个常量 char* 例如