請問下面的代碼有什么問題嗎?
uj5u.com熱心網友回復:
str 記憶體中只有一份,多次呼叫會混亂uj5u.com熱心網友回復:
有沒有可能是strSource的長度可能會大于MAX_STR_LEN,導致陣列越界uj5u.com熱心網友回復:
有可能,所以你的代碼有問題
char* _strdup(const char* strSource)
{
if(strSource==NULL)
return NULL;
int len = strlen(strSource);
char* result = (char*) malloc(sizeof(char)*(len+1));
strcpy(result,strSource);
result[len]='\0';
return result;
}
uj5u.com熱心網友回復:
1)有越界嫌疑,這個不能避免陣列越界。2)多執行緒操作,該函式不是原子操作,多執行緒操作資料內容可能會亂;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/11120.html
標籤:C語言
上一篇:如何在vc中更新控制元件內容
下一篇:遍歷大量線段優化
