//动态内存分配
//动态内存分配
//(常用)malloc (分配几个内存) 全称:memory allocation 申请连续的空间
//calloc contiguous allocation 申请空间+数据初始化 realloc(几个,单个类型的大小)
//realloc() re-allocation 修改空间大小 realloc(指针,修改之后的大小)
//free() 释放内存
#include<stdio.h>
#include<stdlib.h>
int main()
{
int* p = malloc(10 * sizeof(int));//返回内存首地址
printf("%p\n",p);//内存首地址
printf("------------------------\n");
for (int i = 0; i < 10; i++)
{
/**(p + i) = i * 10;
printf("%d\n", *(p + i));*/
p[i] = i * 10;
printf("%d\n", p[i]);
}
printf("------------------------\n");
int* pp = calloc(10, sizeof(int));
for (int i = 0; i < 10; i++)
{
printf("%d\n", pp[i]);
}
printf("------------------------\n");
//扩容
realloc(p,20 * sizeof(int));
for (int i = 0; i < 20; i++)
{
printf("%d\n", p[i]);
}
printf("------------------------\n");
//如果申请的空间不需要用了,一定要记得释放
//释放空间,对结果无影响,在内存中做操作
free(pp);
return 0;
}