aswyamato1989 发表于 2015-2-1 14:30:21

鱼C工作2月1日问题解答过程中出现的问题

原问题为:

int main(void) {

        char *play = "FishC";
        char temp = play;

        play = play;
        play = play;
        play = play;
        play = play;
        play = temp;

        puts(play);

        return 0;

}
问最后输出结果。我在VS2013和Codeblocks上运行出现了问题,即调试到:
play = play;
时出现Access violation writing location 0x00AB585A,:cry
我不明白为何会出现这种情况,望指点。

一叶扁舟 发表于 2015-2-9 10:33:09

play指向的内存是只读的,不能写入,所以赋值出错

仰望天上的光 发表于 2015-2-9 13:02:55

原因同楼上,至于修改,

char *play = "FishC";
改为
char play[] = "FishC";
即可

aswyamato1989 发表于 2015-2-9 13:15:59

感谢楼上两位的指点,问题解决了。

小甲鱼 发表于 2015-2-13 20:03:12

{:9_222:}第二天不是出详细答案了嘛~~~
页: [1]
查看完整版本: 鱼C工作2月1日问题解答过程中出现的问题