簡體   English   中英

將指針數組初始化為結構中的NULL

[英]Initializing pointer arrays to NULL within a struct

給定struct聲明(其中data是指向另一個struct的指針數組):

typedef struct {
    B* data[10];
} A;

似乎結構中的指針數組不會自動初始化為NULL:

struct A myA;
myA.data[0] == NULL (false!)

有沒有一種方法可以強制將數組初始化為NULL而不顯式地將其初始化?

任何類型的對象都可以初始化為零:

struct A myA = { 0 };

這會將第一個標量成員或元素(為嵌套數組,結構和聯合遞歸定義)初始化為0轉換為適當的類型,如果它是指針,則為空指針值。 所有剩余的成員或元素也都初始化為零。

一些編譯器可能會警告您有關缺少的初始化程序的信息; 由於= { 0 }是或應該是“將所有內容初始化為零”的常用用法,因此可以忽略該警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM