코드를보다 효율적으로 만들려고합니다. 나는 다음과 같은 것을 가지고있다 :새 크기가 이전 크기와 같을 때의 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'을 사용할 수도 있습니다. –