[英]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.