【发布时间】:2016-05-03 20:30:58
【问题描述】:
我想计算一个(起初)未初始化的字符数组的长度。
我的代码是:
#include <stdio.h>
int main()
{
char *string_t;
int loc = sizeof(string_t)/sizeof(*string_t);
printf("%d", loc);
}
我希望 loc 是 0,但 loc 是 8。有人可以告诉我为什么会这样以及如何“修复”这个问题以成为我期望的答案吗?
【问题讨论】:
-
你能解释一下你为什么期望
0吗? -
@M.M 我在几个论坛 (stackoverflow.com/questions/6001661/…) 上看到
sizeof(string_t)/sizeof(*string_t)是您查找 char 数组长度的方法 -
您的代码中没有任何字符数组。数组由
[ ]表示。 -
@M.M 哦,我在想既然数组衰减成指针,我基本上有一个数组
标签: c arrays pointers char sizeof