結(jié)構(gòu)體初始化賦值為0 C語(yǔ)言結(jié)構(gòu)體指針中的const成員怎么初始化?
C語(yǔ)言結(jié)構(gòu)體指針中的const成員怎么初始化?有一些方法,但我不同意這種方法。但是,如果它僅用作初始化,則可以先定義初始化函數(shù),并確保不會(huì)在其他位置調(diào)用它。代碼如下:#include#includet
C語(yǔ)言結(jié)構(gòu)體指針中的const成員怎么初始化?
有一些方法,但我不同意這種方法。但是,如果它僅用作初始化,則可以先定義初始化函數(shù),并確保不會(huì)在其他位置調(diào)用它。代碼如下:
#include
#include
typedef struct
{
int*const P
}C
int main()
{
int i=0
C*C=(C*)malloc(sizeof(C))
printf(“old:0x xn”,C->P)
(int*)(C->P)=&i//最關(guān)鍵的一步。
Printf(“new:0x xn”,C->P)
free(C)
return 0
}
構(gòu)造對(duì)象時(shí)初始化對(duì)象是一種誤解。唯一的方法是編寫(xiě)一個(gè)特殊函數(shù)來(lái)初始化結(jié)構(gòu)的內(nèi)存。您甚至可以使用memset()函數(shù)。因此,您的需求已經(jīng)退化為如何初始化結(jié)構(gòu)。這是很多C程序員回去寫(xiě)C程序時(shí),會(huì)反復(fù)思考問(wèn)題。
C 結(jié)構(gòu)體如何初始化?
結(jié)構(gòu)也可以有構(gòu)造函數(shù),可以用默認(rèn)構(gòu)造函數(shù)在新數(shù)組中初始化。
如果成員需要有初始值,則應(yīng)編寫(xiě)構(gòu)造函數(shù)。否則,memset可以初始化為0。
引用如下:
struct_uuTaga
{
int a1
tagA()
{a1=1}
}a[100
]memset(&a,0,sizeof(a))