在向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个字节。但是,我也看到它被普遍使用。