您的位置:

c语言支不支持动态数组,c语言静态数组和动态数组

本文目录一览:

C语言如何定义动态数组

C语言定义动态数组需要用到动态内存分配函数,参考代码如下:

#includestdio.h

#includestdlib.h

int

main()

{

int

*a=NULL,n,i;

scanf("%d",n);

a=(int

*)malloc(n*sizeof(int));

for(i=0;in;++i)

a[i]=i;

for(i=0;

in;

++i)

printf("%d

",a[i]);

free(a);

a=NULL;

return

0;

}

c语言中的动态数组

for(i=0; ilen;i++);//这个后面多了一个分号,如下删除后重新编译就ok了

scanf("%d",p[i]);

修改后程序如下:

#includestdio.h

#includemalloc.h

int main(void)

{

int *p;

int len;

int i;

printf("输入数组的长度");

scanf("%d",len);

p =(int *)malloc(4*len);//相当是定义了个一维数组p[len]担任这样定义的不对了 因为一维数组的数组长度静态定义的时候是不可以用变量的只可以样整型数字;

printf("请输入数组元素");

for(i=0; ilen;i++)

scanf("%d",p[i]);

printf("输出数组的内容");

for(i=0; ilen; i++)

printf("%d\n",p[i]);

return 0;

}

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;inum;i++)

{

scanf("%d",p[i]);

}

/*输出数据*/

for(i=0;inum;i++)

{

printf("%d ",p[i]);

}

/*删除动态创建的数组*/

free(p);

return 0;

}

请教C语言动态数组问题!

通过malloc给指针动态分配,之后可以将指针所指向的内存区域当做数组使用,最后通过free释放内存。

如:

int *p = malloc(100*sizeof(int));//分配一个100个int大小空间的内存区域

之后可以这样使用

for(i=0;i100;i++){

p[i] = i;

}

最后释放内存

free(p);