私はコードをより効率的にしようとしています。私は次のようなものを持っています:新しいサイズが古いものと同じときのreallocの動作
typedef struct{
...
}MAP;
MAP* pPtr=NULL;
MAP* pTemp=NULL;
int iCount=0;
while (!boolean){
pTemp=(MAP*)realloc(pPtr,(iCount+1)*sizeof(MAP));
if (pTemp==NULL){
...
}
pPtr=pTemp;
...
iCount++;
}
メモリが動的に割り当てられています。コードをより効率的にするためにrealloc呼び出しを減らしたいと思います。新しいサイズが古いサイズと等しい場合、reallocがどのように動作するかを知りたいです。コールは単に無視されますか?
OT:(iCount + 1)* sizeof(MAP)が少なくとももっとよく見えると感じます... – alk
@alk:あなたは正しいです。それを変更します。 –
ほとんどの実装ではおそらく同じポインタが返されますが、将来の割り当てを容易にするために割り当てられた領域を再配置する機会と同じサイズの 'realloc'を使用することがあります。 –