【发布时间】:2018-05-09 05:14:59
【问题描述】:
我有这样的结构 sizeof 函数的输出是什么。
struct sample
{
int a;
char b;
};
struct sample obj;
struct sample * ptr;
sizeof(*ptr);
我使用 gcc 编译器在 C 中尝试了这段代码,这给了我结构本身的大小。 但我怀疑这是否会在与其他 C 编译器以及 C++ 一起尝试时产生相同的结果。
你能帮我解决这个问题吗?
提前致谢。
【问题讨论】:
-
sizeof(*ptr);是 UB,因为ptr没有指向有效的内存。 -
sizeof不是函数。它是一个一元运算符。 -
@GauravSehgal - 不,这不是 UB。
-
@StoryTeller 谢谢。从here 清除它。