在对字符串进行反转的函数上工作时,Coredump
|
#include <stdio.h>
#include <string.h>
main()
{
char tmpChar;
char *str_1 = \"Hello\";
int index;
int len = strlen(str_1);
for (int i = 0; i < len/2; i++)
{
index = len - 1- i;
tmpChar = str_1[len - i -1];
str_1[index] = str_1[i]; <<<<<--------------- core dumps at this point. Not sure why
str_1[i] = tmpChar;
printf(\"str_1[%d] = %c\\n\", i, str_1[i]);
}
str_1[len] = \'\\0\';
printf(\"str_1 = %s\\n\", str_1);
}
没有找到相关结果
已邀请:
3 个回复
桑娠贯涤
可以这样存储:
这意味着:请勿尝试修改它们。它在某些情况下可能会起作用,但是如果您只是轻视一点可移植性,那也不是您应该依靠的东西。 更改:
至:
因为这实际上与以下内容相同:
嫩昧竞莫
。在这种情况下,“ 7”是字符串文字(存储在只读部分中),并且您试图通过这样做来修改内容
而不是将“ 9”作为指向文字的指针[即[
]使其成为字符数组,即
。文字的内容将被复制到堆栈中,如果您随后尝试修改其内容,则不会出现任何段错误。
驮帽俺篮号
如