我有以下函數獲取我的代碼中多次調用:修復內存泄露
char* get_section_name(const char* section, const char* value) {
char *tmp = (char *)malloc(STR_LEN * sizeof(char));
if(strlen(section)>0) {
strcat(tmp, section);
strcat(tmp,".");
}
strcat(tmp, value);
return tmp;
}
,我把它在其他功能上是這樣的:
section_name = get_section_name(data->model_name,"params_default");
什麼是最好的方式釋放這個記憶?完成後,我可以撥打free(section_name)
嗎?
'的strcat( tmp,section)'假設'tmp'包含一個字符串。它不是。 – ouah
供參考:http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc - 剛纔看到這個,對我來說是新聞! – weston