C语言动态内存使用例子,小蚂蚁学习C语言(21)——C语言指针——动态内存分配例子...

通过这个例子可以看出动态创建的数组和静态常见的数组的区别。

/*

动态内存的分配

*/

# include 

# include //使用malloc函数,必须引入malloc.h

int main(void)

{

int len;

int i;

printf("请输入元素个数:");

scanf("%d", &len);

/*

使用malloc创建一个动态内存

不同的编译器对int类型给予的字节数不同,使用sizeof(int)可以得到int类型的直接数,

再乘以用户输入的元素个数,就是要动态分配的空间大小。

malloc()返回一个没有数据类型的指针,保存的是第一个存储单元的地址,

需要对其进行强制类型转换(int *)

*/

int * p = (int *)malloc(sizeof(int) * len);

printf("请赋予每个元素对应的值:\n");

//依次输入每一个元素的值

for(i = 0; i 

{

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

}

//依次取出每个元素的值,由这两个for循环,也可以知道

// p[i] 和 *(p + i) 是相等的。

for(i = 0; i 

{

printf("p[%d]的值为 %d\n", i, *(p + i));

}

//释放掉这个数组

free(p);

printf("free(p)之后的数据:\n");

//数组的值不存在了,证明动态内存可以动态的操作。

for(i = 0; i 

{

printf("p[%d]的值为 %d\n", i, *(p + i));

}

return 0;

}

/*

VC++6.0 输出的结果为

==============================

请输入元素个数:3

请赋予每个元素对应的值

1

2

3

p[0]的值为 1

p[1]的值为 2

p[2]的值为 3

free(p)之后的数据:

p[0]的值为 -572662307

p[1]的值为 -572662307

p[2]的值为 -572662307

==============================

结论:

动态内存创建数组的优点

1,不必事先指定元素个数

2,创建的数组,人类可以手动释放

*/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值