我对C语言中的指针初始化有疑问。
我知道这*ptr将给出该指针所指向的值。
ptr 会给你地址。
现在我得到以下语法:
int *ptr = (int *) malloc(sizeof(*ptr));
Run Code Online (Sandbox Code Playgroud)
为什么*ptr用堆的地址而不是值初始化?malloc()返回一个地址吧?
不应该是:
int *ptr;
ptr = malloc(...);
Run Code Online (Sandbox Code Playgroud)
在那一行,int *是类型。
int *ptr = (int *) malloc(sizeof(*ptr));
Run Code Online (Sandbox Code Playgroud)
只是压缩成一行:
int *ptr;
ptr = (int *) malloc(sizeof(*ptr));
Run Code Online (Sandbox Code Playgroud)