Я компилировал эту программу, и компиляция прошла нормально.В тот момент, когда я его выполнил, произошел сбой с ошибкой free(): invalid pointer
.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *p = NULL;
if ((p = (char *) malloc((int)sizeof(char) * 100)) == NULL) {
printf("ERROR: unable to allocate memory\n");
return -1;
}
p += 50;
free(p);
return 0;
}
Я скомпилировал с помощью команды gcc -o memtest m.c
.
Существуют ли какие-либо опции компилятора GCC
, которые будут выдавать предупреждение / ошибку / указание об этих недопустимых ошибках указателя во время компиляции?