当实例化包含结构指针数组的结构时,我保证结构数组成员中的所有指针都将设置为NULL?
这是一个示例结构:
typedef struct mmNode {
int val;
int board[2][NUM_PITS+1];
int side;
struct mmNode* children[NUM_PITS+1];
} mmNode;
Run Code Online (Sandbox Code Playgroud)
IE:如果我创建一个mmNode结构的实例,那么mmNode.children总是将元素设置为NULL?
Oli*_*rth 16
这取决于您初始化结构的方式.
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
}
Run Code Online (Sandbox Code Playgroud)
"没有初始化"意味着所有成员都将拥有随机的垃圾值."Default-initialized"表示所有成员都将初始化为0,指针成员将等同于0 NULL."零初始化"意味着所有内容都将按位设置为0.这仅适用于NULL以位0表示的平台.
| 归档时间: |
|
| 查看次数: |
4838 次 |
| 最近记录: |