C语言 sizeof(char[]) 获取静态大小
C lang sizeof(char[]) get static size
我想获取 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(value)
,其中 char value[MAX]
returns char
的大小乘以 MAX
。因此,value
中存储的字符串长度永远不会是value
.
的大小
在您包含的代码段中,您实际上将 value
的大小设置为 64。因此 sizeof(value)
将 return 64 * sizeof(char)
.
这是正确的,无论您将什么放入数组 value
.
也许您想要做的是让数组在编译时自动调整大小?例如
char value[] = "hi";
int value_size = sizeof(value); // value_size will now equal 3, as the array contains { 'h', 'i', '[=10=]' }
我想获取 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(value)
,其中 char value[MAX]
returns char
的大小乘以 MAX
。因此,value
中存储的字符串长度永远不会是value
.
在您包含的代码段中,您实际上将 value
的大小设置为 64。因此 sizeof(value)
将 return 64 * sizeof(char)
.
这是正确的,无论您将什么放入数组 value
.
也许您想要做的是让数组在编译时自动调整大小?例如
char value[] = "hi";
int value_size = sizeof(value); // value_size will now equal 3, as the array contains { 'h', 'i', '[=10=]' }