У меня есть функция
void *srealloc(void * ptr , int size){
void *tmp = realloc(ptr , size);
if(tmp == NULL){
fprintf(stderr,"realloc of %u bytes failed", size);
exit(1);
}
return tmp;
}
Мой код, который вызывает это, прекрасно работает на компьютере x86, но когда я компилирую и запускаю тот же код на своем компьютере x64, я получаю ошибку segfault.
Пример того, как это вызывается:
line = "Some string";
buffer = (char**) srealloc (buffer,sizeof(buffer)*(++buffer_lines));
buffer[buffer_lines-1] = line;
Когда я отслеживаю с помощью gdb, когда srealloc вызывается на компьютере segfaulting ptr == 0x0, размер == 8
* Изменить: Segfault происходит на:
void *tmp = realloc(ptr, size);