问题描述
实例化包含结构指针数组的结构时, 我是否保证结构数组成员中的所有指针都将设置为NULL?
这是一个示例结构:
typedef struct mmNode { int val; int board[2][NUM_PITS+1]; int side; struct mmNode* children[NUM_PITS+1]; } mmNode;
ie:如果创建mmnode struct的实例,mmNode.children的元素会始终设置为NULL?
推荐答案
这取决于您如何初始化结构.
mmNode a; // Everything default-initialized void foo() { static mmNode b; // Everything default-initialized mmNode c; // Nothing initialized mmNode d = { 0 }; // Everything default-initialized mmNode *p = malloc(sizeof(*p)); // Nothing initialized mmNode *q = calloc(1, sizeof(*q)); // Everything zero-initialized }
"无初始化"意味着所有成员将只有随机的垃圾值. "默认限制化"是指所有成员都将初始化为0,对于指针成员来说,这将等效于NULL. "零启动"是指位置所有内容都将设置为0.这仅在NULL用位0代表的平台上工作.
相关问答
相关标签/搜索