好吧,我无法理解何时以及为什么需要使用分配内存malloc.
这是我的代码:
#include <stdlib.h>
int main(int argc, const char *argv[]) {
typedef struct {
char *name;
char *sex;
int age;
} student;
//Now I can do two things
student p;
//or
student *ptr = (student *)malloc(sizeof(student));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么我可以使用时需要分配内存student p;?
根据c99标准,我们可以编写以下代码,这是完全合法的
int x;
scanf("%d",&x);
int ar[x];
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我可以分配这样的数组,为什么我需要malloc再次分配可变大小的数组?
另外,请您解释一下可变长度数组的分配情况如何?内心深处,是否调用malloc来分配数组或者是什么?
嗨,我是C语言的新手,发现了malloc功能.我应该什么时候使用它?在我的工作中,有人说你必须在这种情况下使用malloc,但是其他人说在这种情况下你不需要使用它.所以我的问题是:我什么时候应该使用malloc?这对你来说可能是一个愚蠢的问题,但对于一个不熟悉C的程序员来说,这很令人困惑!