我想獲得字符數組的大小,但我不能這樣做Ç郎的sizeof(的char [])獲取靜態大小
讓看到
#define MAX 64
char value[MAX]
value = "hi" //or something initialization
sizeof("hi") //result = 3
sizeof(value) // result = 64
我想sizeof("hi") == sizeof(value)
怎麼着怎麼辦?
我想獲得字符數組的大小,但我不能這樣做Ç郎的sizeof(的char [])獲取靜態大小
讓看到
#define MAX 64
char value[MAX]
value = "hi" //or something initialization
sizeof("hi") //result = 3
sizeof(value) // result = 64
我想sizeof("hi") == sizeof(value)
怎麼着怎麼辦?
在包含的代碼片段中,實際上將value
的大小設置爲64.結果sizeof(value)
將返回64 * sizeof(char)
。 這是正確的,無論您將數組放入value
。
也許你想要做的是讓數組在編譯時自動調整大小?例如
char value[] = "hi";
int value_size = sizeof(value); // value_size will now equal 3, as the array contains { 'h', 'i', '\0' }
sizeof(value)
,與char value[MAX]
返回char
的大小由MAX
倍增。因此,存儲在value
中的字符串的長度將永遠不會是value
的大小。
這是否甚至編譯?我不知道你可以像第5行那樣分配一個數組。 –
哦,但是你有更多的語法錯誤,所以這只是一個例子。沒關係。 –
'strlen(value)== 2' – reuns