总是在c语言程序中遇到数组动态分配的问题 难点在于c语言并不支持动态数组的分配 所有的变量赋值都必须在程序编译阶段完成 而有时程序的数组长度并不知道 所以这时就要用指针动态分配内存来解决这个问题
下面是一个动态分配一维数组的程序:
#include <stdio.h>
#include<stdlib.h>
int main()
{
int num,*p=0,i;
printf("输入数组元素个数:");
/*输入数组元素个数,保存到变量num中*/
scanf("%d",&num);
/*动态分配数组存储空间*/
p = (int *)malloc(sizeof(int)*num);
/*输入数据*/
for(i=0;i<num;i++)
{
scanf("%d",&p[i]);
}
/*输出数据*/
for(i=0;i<num;i++)
{
printf("%d ",p[i]);
}
/*删除动态创建的数组*/
free(p);
p=null;
return 0;
}
最后要释放指针 防止内存泄漏