我最近看到的一个代码示例如下:
#include <stdio.h>
#include <stdlib.h>
struct x {
int a;
int b;
};
int main(void) {
struct x *ptr = malloc(sizeof(*ptr));
return 0;
}
-
sizeof(*ptr)
是怎么工作的呢? -
如何取消引用未定义的指针并将其赋值为
sizeof()
并产生正确的大小?(当然,这应该会导致未定义的行为,因为它是未定义的) -
最后,C标准是否定义了这种行为?(也许在C中显示它是合法的,我找不到任何东西)