我正在编写一个使用 realloc() 的代码。以下是问题的简化版本。尽管代码看起来很明显,但它似乎不起作用。
// Program for implementing variable length integer array.
#include<stdio.h>
#include<stdlib.h>
void add(int* ptr,int len,int ele){
ptr = (int*)realloc(ptr,len);
*(ptr+len-1) = ele;
}
void main(){
int max_len = 10;
int* arr = (int*)malloc(sizeof(int));
for(int i=0;i<max_len;i++)
add(arr,i+1,i+1);
printf("The elements are...\n");
for(int i=0;i<max_len;i++)
printf("%d\n",*(arr+i));
}
该程序运行max_len=8
或低但不超过它。为什么会这样?提前致谢。