#include <stdio.h>
#include<stdlib.h>
#include<malloc.h>
int main()
{
int i, n;
printf("请输出要分配内存的整形变量数:\n");
scanf_s("%d", &n);
int *p =(int *) malloc(n * sizeof(int));/*堆内存申请*/
//int *p = (int *)calloc(n, sizeof(int));同malloc一样
if (p != NULL)
{
for (i = 0; i <n; i++)
{
*(p + i) = i;//给分配的内存块中每个变量赋整数值,初始化
printf("%d\n", *(p + i));
}
free(p);//释放内存块
p = NULL;//用完之后,p变成野指针,将其置空
}
else
printf("动态内存分配失败!\n");
return 0;
}
C语言-内存分配的三个函数(malloc、calloc、realloc)
