【发布时间】:2011-09-20 05:37:53
【问题描述】:
下面是一个非常简单的例子。它在 Mac OS X (Snow Leopard) 上使用 gcc 编译得很好。在运行时它会输出 Bus error: 10. 这是怎么回事?
char* a = "abc";
a[0] = 'c';
【问题讨论】:
-
这是一个字符串文字,您无法修改它,因为您的指针指向代码文本部分中的只读位置。使用
char a[] = "abc"作为创建填充字符串的字符数组的简写。