c语言动态生成一整型数组中,C语言中动态数组的实现

c语言中动态数组的实现

在c语言中,数组的长度在定义变量的时候便需要指定,并且只能是一个常数,不能是其它变量。所以,一旦定义了一个数组,将为它分配一个固定大小的空间,以后都不能改变,这样的数组称为静态数组。

但在某些时候,我们需要的数组的长度是无法预先确定的,要解决这样的限制,需要使用动态数组。动态数组是相对于静态数组而言。动态数组的内存空间是从堆(heap)上分配的,是在执行代码过程中分配的,当程序执行到这些语句时,才为其分配。注意,程序员自己负责释放内存。

创建动态数组的例子如下所示:

#include

#include

int main(){

int arrlen; //数组的长度

char *array; //数组指针

char c;

int i;

printf("please set the size of the array:");

scanf("%d",&arrlen);

// 动态分配内存空间,如果失败就退出程序

array = (char*)malloc( arrlen*sizeof(char) );

if(!array){

printf("创建数组失败!\n");

exit(1);

}

// 向内存中写入数据

for(i=0; i

c =getchar();

array[i] = c; //*array++ =c;是通过指针对数组进行操作,也是可以的。

}

// 循环输出数组元素

for(i=0; i

printf("%c ", array[i]);

}

printf("\n");

free(array); //释放内存

system("pause");

return 0;

}

运行结果,是你手动输入的字母。

malloc()是用来动态分配制定大小的内存空间。

free()是用来释放整块内存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值