【发布时间】:2016-03-29 06:47:53
【问题描述】:
我现在正在努力学习,但发送给我的文件不正确。我试着修复了几件事,但它开始了,然后它就崩溃了。我正在学习动态记忆,所以我不知道。这里是realloc()的代码;
#include <stdio.h> /* printf, scanf, NULL */
#include <stdlib.h> /* malloc, free, rand */
int main ()
{
int count=0,i;
int *stations=NULL,*ptrToStations=NULL;
for(i=1;i<=7;i++,count++)
{
ptrToStations=(int*)realloc(stations,count*sizeof(int));
if(ptrToStations!=NULL)//заделили сме памет
{ stations = ptrToStations;
ptrToStations[count]=i;}
}
for(i=0;i<7;i++)
printf("%d",stations[i]);
printf("\n");
//добавяне на 8 елемент
ptrToStations=(int*)realloc(stations,++count*sizeof(int));
if(ptrToStations!=NULL)//заделили сме памет
{ stations = ptrToStations;
ptrToStations [count-1]=count;}
for(i=0;i<count;i++)
printf("%d",stations[i]);
printf("\n");
int x=3;
//преместваме елементите с един назад
for(i=x;i<count;i++)
ptrToStations[i-1]=ptrToStations[i];
//премахване на 8 елемент
ptrToStations=(int*)realloc(stations,--count*sizeof(int));
if(ptrToStations!=NULL)//заделили сме памет
stations = ptrToStations;
for(i=0;i<count;i++)
printf("%d",stations[i]);
printf("\n");
free (ptrToStations);
free (stations);
return 0;
}
【问题讨论】:
-
代码 cmets 应该是英文