[542] Re:reallocについて
投稿者:まきじ
2007/02/20 02:13:25
>最初の 10個の領域とは別に、新たに 20個の領域を確保
*(data.cpItem + i) = realloc(NULL,sizeof(char) * 64);
で、要素数が 64 個の char 型配列が新たに、20 個確保されていると云うことですね?
それより前で、10 個確保されているので、第一引数に NULL を指定すると、
新たに 20 個確保され10 個分、余分にメモリを消費する。
だから、解放するか、20 個の内 10 個は、前と同じ内容なので、残りの
新たに確保された領域 10 個に対して、malloc() してやれば良いですね。
data.cpItem[10] から領域を新たに確保という事で
for(i = 10;i < 20; i++){
*(data.cpItem + i) = realloc(NULL,sizeof(char) * 64);
strcpy(*(data.cpItem + i),str);
}
でどうでしょうか?