我想爲char指針和刪除操作符的使用做一個例子。代碼非常簡單:指定內存位置沒有指針。刪除操作有什麼問題?
char name[] = "subject";
char *nameptr = name;
cout <<"&nameptr: " <<&nameptr<< endl;
delete [] nameptr;
,我不斷收到此錯誤:
*** glibc detected *** free(): invalid pointer: 0xbf9e4194 ***
,我知道nameptr指出了位置0xbf9e4184,從輸出。 沒有指針指向該位置(0xbf9e4194)。 我相信這是與我使用刪除,但我無法弄清楚。
請不要通過猜測來編程。閱讀一本講述系統語言的好書。 –