所以我在這個相當新的,對不起,如果這聽起來像一個愚蠢的問題的malloc函數(使用malloc正確)
我想了解的malloc,並創建一個非常簡單的程序,它將打印「ABC」用ASCII碼
這裏是我的代碼(就是我們的教授教我們)到目前爲止
char *i;
i = malloc(sizeof(char)*4);
*i = 65;
*(i+1) = 66;
*(i+2) = 67;
*(i+3) = '\0';
什麼,我不明白的是,爲什麼我必須把malloc的呢? 教授告訴我們,程序不會運行沒有malloc, ,但是當我嘗試運行它沒有malloc時,程序運行得很好。 那麼malloc的功能呢? 我什至使用它的權利?
任何幫助,或解釋將非常感激
沒有它,'i'未初始化並指向隨機存儲器。 – melpomene
「程序運行良好」。這不好。 C有這個未定義行爲的概念。觸發UB(例如通過訪問無效內存)會導致不可預知的行爲,包括出現工作,但可以隨時停止工作併產生任何行爲。 – kaylum
這意味着,您可能會感到幸運/不幸,並且在運行時不會發現問題。 – Yunnosch