void *:通用地址(通用指针),接收任意地址
动态内存:在堆内申请,堆大小大于1.8G
静态数组存在的问题:1.不能根据变量n动态申请内存 2.不能申请大块内存
动态内存:
1.动态内存的作用:可以根据变量n动态申请数组
2.怎么使用动态内存?
2.1:malloc(90%):申请动态内存(从堆内),有可能失败,返回NULL(1.堆内空间不够 2.堆内空间足够,但是连续空间不够)
2.2:calloc(1%): 在malloc的基础上,将初始值全部变成0
2.3:realloc(9%)
4.注意事项有以下几点
4.1: 用malloc的时候,前面的强转和后面的sizeof内的类型不一致,sizeof里面没有*星号
4.2:calloc注意,两个参数不要写反
4.3:realloc注意:第一个参数需要填写原先内存的开头地址;
//求前n个数中的素数
void Func(int n)
{
int *p = (int*)malloc(n*sizeof(int));//x*y x:申请空间个数 y:申请空间单个大小
assert(p != NULL);
for(int i=0; i
第二个参数需要的是重新开辟的总字节数,不是在原先内存的基础上扩充的字节数



