[英]Strange Core Dump problem
我的這段代碼是轉儲核心:
int main(int argc,char *argv[])
{
char *p = "onnm";
printf("%c\n",++*(p++));
return 0;
}
在printf行中可能是什么原因?
字符串文字是只讀的,您不能更改它們。
使用例如char p[] = "onnm";
由於C的“語言標准不一致”,因此您可以像這樣進行編碼,例如,
const char const_buff[] = { 'o','n', 'n', 'm', '\0' }; // OK
char* pArray = const_buff; // not OK
在同一行中,它應該不允許您進行編譯,
char *p = "onnm";
但是您可以編譯,因此允許您犯下更改只讀字符串的錯誤。
++ * ( p++)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.