C语言中开辟内存有很多种方式,目前我们最常用的也就是数组,但数组是在我们用到他之前就得设定好它的长度,有时很不方便。
我们知道,c语言规定,不允许设定一个未知长度的数组。(但在Linux下可以设定,但也不支持这样做)
下面这段代码就会报错哟!!!
int x = 5;
int arr[x];
所以,为了填补这一缺口,c语言有了动态内存,c语言提供了几个函数来管理我们的动态内存,这几个函数非常重要,分别为:
一:
1:malloc
void* malloc(size_t size);
可以看到这个函数的返回类型为void*,为一个空指针(我们前面了解到,void*可以作为返回值和传参,但不能直接解引用,所以我们在运用它时需要先将它强制转化为我们想要的指针类型);
这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针;
如果开辟成功,则返回一个指向这块空间的地址;