在 C 中,为什么这不起作用:
#include <stdio.h>
int main(void)
{
char * strA = "Hello ";
strcat(strA, "World!");
printf("%s", strA);
return 0;
}
但这确实:
#include <stdio.h>
int main(void)
{
char strA[6] = "Hello ";
strcat(strA, "World!");
printf("%s", strA);
return 0;
}
我会提出错误,但可惜我使用的是 Xcode,它不喜欢在失败时给我任何可用的东西,只是给我 BAD_ACCESS_EXC(code =2...) 根据快速谷歌搜索,只是有与内存分配错误有关。
我认为您在两种情况下都为 strA 分配了相同数量的内存。有人可以启发我吗?