【发布时间】:2015-04-29 14:29:50
【问题描述】:
是否可以通过这种方式更改由字符串指针初始化的字符数组中的值:
char *word;
word = (char*) malloc(10 * sizeof(char));
word = "Test";
word[2] = 'w';
return 0;
执行上述代码时出现分段错误。
【问题讨论】:
-
欢迎来到 Stack Overflow!警告:你should not cast malloc 的回归。第二个警告:当在
malloc(等)you should always write it 中调用sizeof为ptr = malloc(sizeof(*ptr) * ...);而不是ptr = malloc(sizeof(ptrtype*) * ...);。 -
word = "Test";将字符串litteral"Test"的地址分配给word,首先用malloc覆盖你在其中得到的内容。你似乎根本不知道自己在做什么,也许应该得到一本关于 C 编程的好教程或好书 -
您可能必须这样做,或者您可能会search how to do it,然后尝试what you found is supposed to work。
标签: c arrays string pointers malloc