C语言 动态内存自定义存储空间和初始化

执行结果截图:

 

 代码:

#include "stdio.h"
#include "stdlib.h"
#include "memory.h"

int main()
{
int * ptr = NULL;
int num, i;

printf("请输入待录入整数的个数 : ");
scanf("%d", &num);
putchar('\n');

// 申请一个整型的长度为num的动态内存空间
ptr = (int *)malloc(num * sizeof(int));
if (NULL == ptr)
{
exit(1);
}
// 将动态内存空间里每个整型单位初始化为零
memset(ptr, 0, num * sizeof(int));
printf("成功申请动态内存并初始化如下:\n");
for (i = 0; i < num; i++)
{
printf("%d ", ptr[i]);
}
// 打印一个换行回车符
putchar('\n');

// 顺序录入第i+1个整数(因为i初始值是0,"第0个整数"不符合人类的表达习惯,所以用i+1)
for (i = 0; i < num; i++)
{
printf("请录入第%d个整数 :", i+1);
scanf("%d", &ptr[i]);
}
printf("你录入的整数是 : ");

for (i = 0; i < num; i++)
{
printf("%d ", ptr[i]);
}
// 打印一个换行回车符
putchar('\n');
/* 释放动态内存。注意:释放动态内存前,不要让ptr指向别的地址,
*因为那样会丢失动态内存地址,导致隐性内存泄漏。
*/
free(ptr);

return 0;
}
posted @   JohnnyH  阅读(317)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示