在我的代碼幾乎每一個功能都有一個或多個malloc的電話,每一次我必須做一些事情,如:整潔的方式來處理malloc錯誤,而不檢查每次malloc調用後是否返回NULL?
char *ptr = (char *)malloc(sizeof(char) * some_int);
if (ptr == NULL) {
fprintf(stderr, "failed to allocate memory.\n");
return -1;
}
這是代碼四個額外的行,如果我加入他們,我用一個malloc後每次,我的代碼長度會增加很多..那麼有沒有一種優雅的方式來處理這個問題?
非常感謝你!
如果你的代碼長度會增加很多,你應該考慮一下你爲什麼要調用'malloc'這麼多。這可能表明你正在嘗試將不同語言的成語翻譯爲C,而不是正確使用C ... –
請注意,不需要在C中投射'malloc'的返回值,並且可能會隱藏編譯器在沒有演員。 – pmg
@pmg你說的是'(char *)'吧?這掩蓋了什麼樣的錯誤? – cokedude