Eng*_*nie 1 c memory variables malloc memory-management
根据我的理解,malloc函数接受一个变量并按要求分配内存.在这种情况下,它会要求编译器准备内存以适应20个双变量的等价.我的理解方式是否正确,为什么必须使用它?
double *q;
q=(double *)malloc(20*sizeof(double));
for (i=0;i<20; i++)
{
*(q+i)= (double) rand();
}
Run Code Online (Sandbox Code Playgroud)
您不必在以下时间使用malloc():
请注意,malloc()在运行时分配内存,而不是在编译时分配内存.编译器仅涉及确保调用正确函数的程度; 这是malloc()分配.
你的例子提到了"十个整数的等价".20很少double占据与10相同的空间int.通常,10 double将占据与20相同的空间int(当sizeof(int) == 4和sizeof(double) == 8,这是一个非常常见的设置).