这是我的代码:
int size;
int *p1;
scanf("%d",&size);
p1 =(int*)malloc(sizeof(int)*(size-1));
for (i=0;i<size;i++)
scanf("%d",&p1[i]);
free(p1);
该程序运行完美,直到最后一行 - 自由功能。当它到达它时,我会收到一个巨大的错误窗口,例如“检测到堆损坏”。
我知道自由函数应该得到一个 void 指针,但我的是 int。我怎样才能释放它?
谢谢!