我想问一下以下 case :

char *temp;
temp = malloc(10);

由于malloc的返回类型是void*malloc返回的指针在分配给temp之前是否会隐式转换为char*类型?标准对此有何规定?

如果我们的指针变量是某种 struct 类型,例如:

struct node *temp;
temp = (struct node *)malloc(sizeof(struct node));

如果我们将内存分配给Temp而不将其强制转换为struct node*类型,它将被隐式强制转换为struct node*类型还是有必要显式强制转换为struct node*类型?

推荐答案

C中的空指针可以赋值给任何指针,而不需要显式强制转换.

C++相关问答推荐

为什么静态说明符为内联函数生成外部定义?

try 使用sigqueue函数将指向 struct 体的指针数据传递到信号处理程序,使用siginfo_t struct 体从一个进程传递到另一个进程

使用NameSurname扫描到两个单独的字符串

堆栈帧和值指针

为什么双重打印与C中的float具有不同的大小时具有相同的值?

Can函数指针指向C++中具有不同参数连续性的函数

C由四个8位整数组成无符号32位整数

二进制计算器与gmp

CSAPP微型shell 实验室:卡在sigprocmask

在每种If-Else情况下执行语句的最佳方式

这个计算C中阶乘的函数正确吗?

用C++从外部ELF符号读取值

覆盖读取函数,但当文件描述符为3或4时,我有问题

Go和C中的数据 struct 对齐差异

判断系统命令返回值的正确方法

Fprintf正在写入多个 struct 成员,并且数据过剩

如何在C中用bool进行文件I/O?

具有正确标头的C struct 定义问题

STM32:代码的执行似乎取决于它在闪存中的位置

C 预处理器中的标记分隔符列表