在Xcode中编译C时继续获得BAD_ACCESS

时间:2014-05-19 17:34:15

标签: c++ c xcode

如果我在Xcode中启动一个新的命令行C项目并输入以下代码,我在编译项目时总会收到EXC_BAD_ACCESS错误。

int main(int argc, const char * argv[])
{
    char *foo = "Hello";
    *foo = 'M'; // get EXC_BAD_ACCESS here when compiling
}

我只是在学习C而且不能训练这句话有什么问题?我只是想在某个内存位置更改角色。有没有人有任何想法?

2 个答案:

答案 0 :(得分:1)

BAD_ACCESS对Mac来说是Linux的分段错误。你在破坏记忆。我还假设你在执行过程中得到了这个错误,而不是编译(因为那会很奇怪)。

编辑:

我还想指出,当静态分配时,这不会发生。

int main(int argc, const char * argv[])
{
    char foo[] = "Hello";
    *foo = 'M'; // no more EXC_BAD_ACCESS here
}

答案 1 :(得分:0)

您的代码有未定义的行为。您正在尝试修改字符串文字。