代码之家  ›  专栏  ›  技术社区  ›  abidkhan303

C处未处理的异常++

  •  0
  • abidkhan303  · 技术社区  · 12 年前

    我收到此错误

    Unhandled exception at 0x00091e11 in JobTest.exe: 0xC0000005: Access violation writing location 0x0009573c.
    

    在该函数的第一行

    void myFunction(char str[]) {
    
        str[0] = 'C';// here is a problem
        printf(str);
    }
    
    myFunction("Hello World");
    

    在visual studio 2010中。是编译器特定的还是我做得很糟糕。 我还尝试更改函数签名char*str。

    1 回复  |  直到 12 年前
        1
  •  4
  •   haccks    12 年前

    字符串文本不可修改。您正在尝试修改函数中的字符串文字 myFunction .
    字符串文本可以共享,并且可以存储在只读存储器中(正如@Duplicater在评论中所说)。任何修改字符串文本的尝试都会调用 未定义的行为 .

    正如@MooseBoys所建议的,您可以将其更改为:

    char msg[] = "Hello World"; 
    myFunction(msg);