C语言中,用malloc()动态分配内存,实现读入与输出元素
malloc()是动态内存分配函数,用来向系统请求分配内存空间。当无法知道内存具体的位置时,想要绑定真正的内存空间,就要用到malloc()函数。
与其配套的是free(),当申请到的空间不再使用时,要用free()函数将内存空间释放掉,这样可以提高资源利用率,最重要的是----就是因为它可以申请内存空间,然后根据需要进行释放,才被称为“动态内存分配”!
详细每一句的实现原理已经写在程序的注释里啦~
需要包含头文件:
#include<stdlib.h>
或
#include<malloc.h>
完整程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
int main(void)
{
int length = 0;
int* array = NULL;
printf("请输入数组的长度:");
scanf_s("%d", &length);
printf("您输入数组的长度为:%d\n\n", length);
array = (int*)malloc(sizeof(int) * length);
if (array == NULL)
{
printf("内存申请失败\n");
return 0;
}
else
{
for (int i = 0; i < length; i++)
{
printf("请输入array[%d]的值:", i);
scanf_s("%d", array + i);
}
printf("\n您输入的数组为:\n");
for (int i = 0; i < length; i++)
{
printf("array[%d] = %d\n", i, *(array + i));
}
}
free(array);
array = NULL;
return 0;
}
输出:
|