#include <stdio.h>
#include <stdlib.h>
int main()
{
//动态分配内存
int * nums;
int i;
nums = (int *)malloc(20);//为前面的指针动态分配了20个字节的空间
//等价于 :int nums[5]
//为指针动态分配空间后,指针就变成了数组
for(i = 0; i < 5; i++)
{
printf("请输入第%d个元素:",i + 1);
scanf("%d",nums + i);
}
printf("数组元素为:\n");
for (i = 0; i < 5; i++)
{
printf("%d\t",*(nums + i));
}
free(nums); //释放动态分配的内存
nums = NULL;
return 0;
}
malloc
#include <stdio.h>
#include <stdlib.h>
int main()
{
//动态分配内存
int * nums;
int i;
nums = (int *)malloc(sizeof(int) * 5);//为前面的指针动态分配了20个字节的空间
//等价于 :int nums[5]
//为指针动态分配空间后,指针就变成了数组
nums [3] = 1314520;
printf("数组元素为:\n");
for (i = 0; i < 5; i++)
{
printf("%d\t",*(nums + i));
}
free(nums); //释放动态分配的内存
nums = NULL;
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
//动态分配内存
int * nums;
int i;
//nums = (int *)malloc(sizeof(int) * 5);//为前面的指针动态分配了20个字节的空间
nums = calloc(5,sizeof(int));
//等价于 :int nums[5]
//为指针动态分配空间后,指针就变成了数组
nums [3] = 1314520;
printf("数组元素为:\n");
for (i = 0; i < 5; i++)
{
printf("%d\t",*(nums + i));
}
free(nums); //释放动态分配的内存
nums = NULL;
return 0;
}