简体   繁体   English

C中struct中的malloc布尔值的默认值?

[英]Default of malloc'd bool value within struct in C?

What is the value of this bool within a struct when we try to access it as n->myBool? 当我们尝试以n-> myBool的形式访问此布尔值时,它在结构中的值是什么? I'm interested to know what the "default" value of the bool is after allocating memory for it but not assigning it a true of false value. 我很想知道bool的“默认”值是在为其分配内存之后,而不是为其分配false值的true。

#include <stdbool.h>
typedef struct node
{
 bool myBool;
} Node;

void main()
{
 Node* n = malloc(sizeof(Node));
 return;
}

edit: corrected a typo in code (should be sizeof(Node) not sizeof(node) 编辑:更正了代码中的错字(应该是sizeof(Node)而不是sizeof(node)

There is no default value. 没有默认值。 Space allocated by malloc is uninitialized, and trying to read from n->myBool before writing a value to it will cause undefined behaviour. malloc分配的空间是未初始化的,尝试在n->myBool写入值之前从n->myBool读取将导致未定义的行为。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM