sizeof(struct ExampleStruct)或sizeof(*VarExampleStruct) - 哪种编码方法更好?

Jay*_*Jay 4 c structure

在提到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?  

}
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢,sizeof(struct ExampleStruct)因为我看到许多开发人员在第二种方法中错误地错过了'*',即他们错误地输入它malloc(sizeof(Y)),在这种情况下,分配的内存将只有4个字节.但是,我已经看到它也被普遍使用.

Rob*_*obᵩ 5

我绝对更喜欢第二名.如果Y每个更改的声明类型,该行仍将正常工作.