在向 malloc 调用提及结构的大小时,是提及结构的名称还是解除引用的结构指针变量更好?
例子:
struct ExampleStruct
{
int x;
char arr[40];
};
int main()
{
struct ExampleStruct *Y = NULL;
Y = malloc(sizeof(struct ExampleStruct)); //Is this better?
Y = malloc(sizeof(*Y)); //Is this better?
}
我个人更喜欢sizeof(struct ExampleStruct)
,因为我看到许多开发人员在第二种方法中犯了遗漏“*”的错误,即他们错误地键入它malloc(sizeof(Y))
,在这种情况下,分配的内存将只有 4 个字节。但是,我也看到它也被普遍使用。