제가C, 난 일부 공정을 수행하고 마지막 I 더 이상 제 10 개 요소를 필요로하지 않는
double *array;
array=malloc(100*sizeof(double));
가진 배열을위한 공간을 할당 한 가정 처음부터 할당 된 공간을 축소, I는 realloc
이것을 시도 :
*** glibc detected *** ./temp: realloc(): invalid pointer:...
가 어떻게 쉬 수 있습니다
array=realloc(array+10, 90*sizeof(double));
하지만 잘못된 포인터 오류가 배열을 처음부터 사자?
나는 그렇게 생각하지 않는다. 옵션은 활성 요소를 처음으로 이동시킨 다음 끝에 다시 할당하는 것입니다. 또는 어떤 종류의 활성 구조 (예 : 연결된 목록)를 사용하십시오. – Jiminion
감사합니다. Grijesh Chauhan 및 H2CO3, 이해했습니다! "Realloc은 배열로 사용되는 메모리에 'ptr'포인트가 필요하지 않지만 실제로는 일반적으로 그렇게합니다." 나는 이것을 내가 생각한 것을 할 수있는 자유로 해석했다. 이제 나는 할 수 없다는 것을 이해합니다! 고맙습니다. – makhlaghi