作者x3795566 (冀憶)
看板C_and_CPP
標題[問題] realloc的問題
時間Thu Apr 30 23:23:23 2009
最近寫程式用到了realloc
可是我發現只要我給程式的資料大於一定數量時
(即realloc的size大於某一大小時-----大約4個char*)
就會出現以下錯誤
*** glibc detected *** ./a.out : realloc(): invalid next size:0x08cfa008 ***
跟一些Backtrace跟Memory map的東西
小於那個數量就不會
這是為什麼呢@@?
部份程式碼如下:(nweArgv為char** token為char* count為int)
while(token=strtok(NULL,delim))
{
count++;
newArgv=(char**)realloc(newArgv,sizeof(char*)*count);
newArgv[count]=token;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.194.90
※ 編輯: x3795566 來自: 140.117.194.90 (04/30 23:37)
1F:推 pakker:count有沒有initial? 05/01 00:13
2F:→ x3795566:有 05/01 00:23
3F:推 pakker:...你realloc count個, 請assign到count-1 05/01 00:55
4F:→ x3795566:大驚 一語驚醒夢中人 05/01 01:06
5F:→ x3795566:非常感謝樓上<(_ _)> 05/01 01:11
6F:→ tinlans:以後遇到這種問題用 valgrind 跑一次看看再上來問。 05/01 14:48