~c語言 C語言結(jié)構(gòu)體指針中的const成員怎么初始化?
C語言結(jié)構(gòu)體指針中的const成員怎么初始化?有一些方法,但我不同意這種方法。但是,如果它僅用作初始化,則可以先定義初始化函數(shù),并確保不會在其他位置調(diào)用它。代碼如下:#include#includet
C語言結(jié)構(gòu)體指針中的const成員怎么初始化?
有一些方法,但我不同意這種方法。但是,如果它僅用作初始化,則可以先定義初始化函數(shù),并確保不會在其他位置調(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)造對象時初始化對象是一種誤解。唯一的方法是編寫一個特殊函數(shù)來初始化結(jié)構(gòu)的內(nèi)存。您甚至可以使用memset()函數(shù)。因此,您的需求已經(jīng)退化為如何初始化結(jié)構(gòu)。這是很多C程序員回去寫C程序時,會反復(fù)思考問題。