Dynamic 动态内存中的新功能。realloc();
我现在正在努力学习,但是发给我的文件不正确。我试着修复了一些东西,但它开始了,然后就碎了。我在学习动态记忆,所以我不知道。下面是realloc()的代码Dynamic 动态内存中的新功能。realloc();,dynamic,realloc,Dynamic,Realloc,我现在正在努力学习,但是发给我的文件不正确。我试着修复了一些东西,但它开始了,然后就碎了。我在学习动态记忆,所以我不知道。下面是realloc()的代码 #包括/*printf、scanf、NULL*/ #包括/*malloc、free、rand*/ int main() { int计数=0,i; int*stations=NULL,*ptrToStations=NULL; 对于(i=1;i您在这里遇到了几个问题 最后,重复释放相同的内存块 计数应该从1开始。在第一次迭代中,您尝试更改内存块大小
#包括/*printf、scanf、NULL*/
#包括/*malloc、free、rand*/
int main()
{
int计数=0,i;
int*stations=NULL,*ptrToStations=NULL;
对于(i=1;i您在这里遇到了几个问题
最后,重复释放相同的内存块
计数应该从1开始。在第一次迭代中,您尝试更改内存块大小为0字节
数组外界错误
ptr站[计数]=i
您的代码实际上应该是这样的
#include <stdio.h> /* printf, scanf, NULL */
#include <stdlib.h> /* malloc, free, rand */
int main ()
{
int count=1,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-1]=i;
for(i=0;i<count;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 (stations);
return 0;
}
#包括/*printf、scanf、NULL*/
#包括/*malloc、free、rand*/
int main()
{
int计数=1,i;
int*stations=NULL,*ptrToStations=NULL;
对于(i=1;iCode注释应为英语)
#include <stdio.h> /* printf, scanf, NULL */
#include <stdlib.h> /* malloc, free, rand */
int main ()
{
int count=1,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-1]=i;
for(i=0;i<count;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 (stations);
return 0;
}