指向malloc的指针?

Seg*_*gev 3 c struct pointers

struct node* new_node =
            (struct node*) malloc(sizeof(struct node));
Run Code Online (Sandbox Code Playgroud)

我不明白*这里:...(struct node*) malloc(siz... 首先,*属于node或malloc?这是什么意思?指针如何与内存函数malloc有关?我真的很困惑*位置

谢谢

unw*_*ind 6

C中括号(例如(struct node *))中的类型名称称为"强制转换".这是一种将表达式类型更改为命名类型的方法,通常用于指针.

但是,这是忽略了我在转换malloc结果时的建议的代码.是演员不是这里所需要,使这(在我看来,也许不是很令人惊讶,如果你遵循这个链接),而糟糕的代码.

编写此分配的最佳方法是:

struct node * new_node = malloc(sizeof *new_node);
Run Code Online (Sandbox Code Playgroud)

这提到了类型只有一次,丢弃了可能引入错误的强制转换,并且读取既无意义又麻烦,并且在指定要分配的内存时避免引入脆弱性.这是胜利,赢得胜利.