簡體   English   中英

奇怪的核心轉儲問題

[英]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.

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