抱歉,标题令人困惑。这是我的结构:

struct l_list{
   int number;
   char *name;
   double value;
   struct l_list *next;
};

typedef struct l_list *PhoneBook;

主功能:
int main(void){

   printf("%u\n", sizeof(struct l_list));

   PhoneBook person1;

   printf("%u\n", sizeof(*person1));
   printf("%u\n", sizeof(PhoneBook));

   return 0;
}

输出为:



我知道PhoneBook显示4个字节,因为它只是指针的大小,但是如何从typedef PhoneBook中找到实际结构的大小呢?

最佳答案

你可以做:

printf("%u\n", sizeof(*(PhoneBook) NULL) );

关于c - 从指针中找到结构的正确大小而不创建对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19672769/

10-11 14:20