我想從我自己的結構中使用sizeof(_test.header.columns)/sizeof(struct _column)
獲得「列」元素數。不幸的是我總是把它作爲0
,因爲sizeof(_test.header.columns)
總是4
。這裏是代碼:sizeof報告錯誤的值
struct _column{
char title[40];
int length;
};
struct test_struct{
struct{
struct _column* columns;
}header;
struct{
struct _column* columns;
}details;
struct{
struct _column* columns;
}end;
};
struct test_struct _test = {
.header = {
.columns = {
{
"a",
1,
},
{
"ab",
2,
},
},
},
.details = {
.columns = {
{
"b",
2,
},
{
"bc",
3,
},
},
},
.end = {
.columns = {
{
"c",
3,
},
{
"cd",
4,
},
},
},
};
void testme(){
char buff[20];
itoa(sizeof(_test.header.columns)/sizeof(struct _column),buff,sizeof(buff));
MessageBoxA(NULL,buff,NULL,NULL);
}
請幫我解決問題,謝謝。任何幫助,將不勝感激。
您在指針上使用'sizeof',而不是數組。 –
我使用了「struct _column * columns」將列聲明爲_column數組的聲明,如果這是錯誤的,那麼如何糾正它? – user3407088
你在看testme()的輸出嗎,你的參數按MessageBoxA的正確順序排列......我不知道它們是什麼......爲什麼不用'snprintf(buffer,20,「%d 「,number)' –