我想分配內存到字符指針(它應該存儲十六進制值後) 只要我運行此代碼程序崩潰。 (我必須使用C-字符串)我不能分配內存到我的字符指針
int main() {
char *c = (char*)malloc(sizeof(unsigned int)*2);
}
我看到這一切在互聯網上的例子,但它在我的機器上失敗。爲什麼?
我想分配內存到字符指針(它應該存儲十六進制值後) 只要我運行此代碼程序崩潰。 (我必須使用C-字符串)我不能分配內存到我的字符指針
int main() {
char *c = (char*)malloc(sizeof(unsigned int)*2);
}
我看到這一切在互聯網上的例子,但它在我的機器上失敗。爲什麼?
好的解決方案很簡單,因爲問題本應該是... 我沒有看到.exe文件無法生成,因此我正在運行1小時前編譯的舊.exe文件...
哦,親愛的............ –
爲了笑聲而升高。 – Shoe
malloc的是C,你正在試圖做C++。
我只想做到這一點:
char *c;
c=new char[Max_Size];
顯然MAX_SIZE將是你的意圖數組的大小。
你沒有說你的意思是說它失敗了。在任何情況下,您必須包含標題<stdlib.h>
如果程序是用C寫的,或者是<cstdlib>
如果程序用C++編寫。
C代碼:
#include <stdlib.h>
int main() {
char *c = (char*)malloc(sizeof(unsigned int)*2);
free(c);
}
在任何情況下,你應該提出一個代碼,使重現的情況。我認爲這個問題不在這個代碼中,而是在你覆蓋內存的地方。您所展示的代碼我認爲是無關緊要的。
他確實提到了失敗的意義。他說「程序崩潰」 – Vishal
@它可能意味着什麼。我不是一個心靈探路者。 –
爲什麼malloc(這是C)而不是新的(這是C++) – olevegard
看起來像什麼? – JustAJavaProgrammer
它如何變亂?這是一個編譯器錯誤? –