Jay*_*esh 2 c malloc function void calloc
malloc功能声明:
void *malloc(size_t size);
Run Code Online (Sandbox Code Playgroud)
在这里,malloc返回void指针.那么,A void函数什么都不返回呢
为什么我们将malloc(函数调用)值赋给指针?
例如:
int *ptr;
ptr = malloc(10 * sizeof (*ptr));
^^^
Run Code Online (Sandbox Code Playgroud)
什么是返回值来自malloc()???
这可能是语言设计者的一个不幸的选择,但是他们决定重用void它们的void*构造,这几乎颠倒了它的含义:虽然void意味着"不返回",void*意味着"返回指向任何东西的指针".
本质上,void*是指向未指定对象的指针.在取消引用之前,必须将其转换为指向特定类型的指针.这正是由malloc或返回的那种指针calloc.