问题标签 [char-pointer]

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 投票
5 回答
3134 浏览

c - 为什么我的程序在使用堆分配内存时会引发分段错误?

在编写了一个反转字符串的程序后,我无法理解为什么在尝试反转字符串时会出现段错误。我在下面列出了我的程序。

第一个问题:

即使我只为 char 指针 str ( calloc(1,'\0')) 分配了 1 个字节的内存,并且我将一个 18 字节的字符串复制mystring0123456789到其中,它也没有抛出任何错误,并且程序在没有任何 SEGFAULT 的情况下运行良好。

为什么我的程序没有抛出错误?理想情况下,它应该抛出一些错误,因为它没有任何内存来存储那个大字符串。有人可以解释一下吗?

该程序运行完美,并给了我输出Reverse String is: 9876543210gnirtsym

第二个问题:

如果替换语句

即使我为 str ( malloc(100)) 分配了足够的内存,程序也会出现分段错误。

为什么程序抛出分段错误?

0 投票
2 回答
347 浏览

c++ - char指针上的C++错误

我想在结构内初始化一个 char* 字符串。

这是结构:

这就是它崩溃的地方..

这是主要的:

第一个进展顺利,第二个没有..请你帮我理解问题出在哪里?谢谢!

0 投票
1 回答
359 浏览

c++ - Empty char* 成功转换为有效的 unsigned int64 游戏 ID??如何?

我正在开发一款游戏,但遇到了一个奇怪的小问题......我想知道这里是否有人能够解决这个问题并向我解释(它让我吃不消!)

首先,这是相关代码。

游戏是1对1多人游戏。这个包含函数是一个回调函数,只要发生值得注意的事情(例如踢玩家或开始游戏)就会运行。我有 2 台计算机正在测试在线内容(一台 Windows 7 机器和 Windows XP 机器)。

在这种情况下,当两个玩家同时按下“开始游戏”时,会可靠地出现一个奇怪的错误。Windows XP 机器播放器将被踢(通过上面的代码) - 这表明GetGameData("kick_member_id")返回了他的 ID……但它没有。

调试:

  • 我已经注释掉了设置 GameData“kick_member_id”值(即禁用踢)的代码,以确保 - 并且错误继续发生。主机没有踢客户端。
  • 我已经输出c_KickID到一个文件并且它是空的(XP机器没有Visual Studio,所以我不能在它上面设置断点,所以我只是将它的内容输出到一个文件中)。
  • 我试图明确地踢 XP 播放器。他们的 ID 已成功写入输出文件,并按预期被踢了。
  • 我已经输出kickID到一个文件,它等于myID,这就解释了为什么if (myID == kickID)通过。

回顾一下:

所以......当将空c_KickID转换为时unsigned long long,它被设置为myID......这怎么可能?我完全失去理智了!

我已经通过将 a 转换char *为 astd::string并检查它是否为空来解决这个问题,如果它是空的,那么我只是绕过这个代码。但我仍然不知道问题到底是什么。我为此失眠了!!!

0 投票
2 回答
876 浏览

c - 从 strtok 填充 char*[]

我无法按照代码工作。它将用户输入解析为 char*[] 并返回它。但是 char* command[] 不接受任何值并保持填充为 NULL...这里发生了什么?

您可能会假设,命令行!= NULL,长度!= 0

0 投票
5 回答
6252 浏览

c++ - 为什么我不能使用 '=' 运算符将数组变量直接分配给另一个数组变量?

为什么以下作业不起作用?如果可能的话,我想要一个低层次的解释。另外,这是我得到的编译器错误:将'char *'分配给'char [20]'时的类型不兼容

0 投票
3 回答
649 浏览

c++ - 函数调用上下文中的 char 指针、char 数组和字符串

不编译的行和编译的行有什么区别?不编译的行给出了这个警告: deprecated conversion from string constant to 'char*'

另外,我知道在传递给函数的字符串上强制转换 (char *) 可以解决问题,但我想了解为什么当第二行编译得很好时,这甚至是必要的。

0 投票
2 回答
94 浏览

c++ - 为什么我在使用 ++ 时会出现 seg 错误,而在使用 '1 +' 时却没有?

请解释为什么我使用 ++ 运算符得到段错误。显式加 1 和使用 ++ 运算符有什么区别?

0 投票
5 回答
390 浏览

c++ - 通过指针访问 char*

这是我的问题。

我有一个定期修改 char* 的类。

还有另一个类,需要能够读取这个值。所以我想将 char* 传递给第二个类的构造函数,以便它可以在需要时检查值。

让我举一个我对另一个参数的实现示例,它是布尔类型:

在 A 类:

B类:

到目前为止一切顺利 - 这似乎有效。两个类都可以更改和访问此布尔值。

现在我需要用 char* 做同样的事情(我不能使用字符串,所以我想这是存储短文本的最佳方式,比如 url 地址?)。

所以这是我写的:

A类:

C类:

我想问题是因为字符串已经改变了,它的地址也改变了?我真的很困惑 - 有人可以告诉我发生了什么,在这种情况下我该怎么办?

更新:

看起来问题出在我如何修改char *:

有没有其他方法可以将字符串的值写入 char *?

0 投票
3 回答
6091 浏览

c++ - 将值存储在 char 指针指向的 char 数组中

我有一个字符指针。

现在我想将ch指向的 char 数组的值存储在另一个数组arr中。我想永久存储ch指向的值,这样在ch上执行的任何其他操作都不会修改数组的原始值。

谁能告诉我该怎么做?

0 投票
3 回答
8602 浏览

c - C 中的 char* 和布尔值 TRUE FALSE

我有一段遗留代码,char*它有用于 if-then-else 逻辑流的函数参数。例如:

假设我是myFunc(char *f_reset)main()

当我尝试进入函数调用时,我发现它*f_reset永远不会被评估为0错误 - 因为一些垃圾-8342345825或类似的东西,它总是正确的。

它使用的原因char*可能是因为在过去 boolean 比 char * 占用更多的内存?我过去在 Stackoverflow 帖子中读到的一些内容。

char*有人可以给我一个关于逻辑真假之间关系的虚拟指南吗?