【发布时间】:2013-03-23 17:45:34
【问题描述】:
我正在开发一个应用程序,其中我遇到了包含多个“\000”终止字符的字符串。我想要字符串中的那个空字符。 在处理这个时,字符串仅在 '\000' 处终止,所以我试图增加它的 ASCII 值。但是当我这样做时,我得到了分段错误。
我在下面写了代码段
char *content;
content = malloc(8);
content = "\037\000\000\000\000\037\037\037";
int content_length = 8;
content[1] = content[1] + 1; // Increasing the ASCII value
在这里,如果我删除增加 ASCII 值的最后一行,我的应用程序中只会收到 1 个字节。所以已经改变了第二个字节(内容[1])然后应该传输2个字节,但是我得到了分段错误。
我做错了吗?十六进制或八进制数字会产生这样的结果吗?
谢谢
【问题讨论】:
标签: c string data-structures