簡體   English   中英

C ++中未處理的異常

[英]Unhandled exception at C++

我收到此錯誤

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。

字符串文字是不可修改的。 您正在嘗試在函數myFunction修改字符串文字。
字符串文字可以共享,也可以存儲在只讀內存中(如@Duplicator在其評論中所述)。 任何試圖修改字符串文字的嘗試都會導致未定義的行為

正如@MooseBoys所建議的,您可以通過將其更改為以下內容來對其進行修復:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM