我对这将做什么有一些想法,但我想要更专业和有经验的解释。指针 - 铸造结构指针+ Malloc
typedef struct{
char str[50];
unsigned short num;
}s;
s *name = (s *) malloc(sizeof(s));
第一部分定义了一个结构。我没有问题
这将创建一个指向“s”结构的指针。 malloc()
返回将作为指向“s”的内存地址。然而,sizeof(s)
我相信我有一些问题的理解。
char str[50];
= 50字节。
unsigned short num;
= 2个字节。
sizeof(s)返回52字节?
malloc(sizeof(s))
分配52个字节并返回第一个地址并将其转换为“s”指针?
还有一个问题! 如何使用malloc进行错误处理?
感谢任何人可以帮助澄清这一点!
[不要强制返回'malloc'](http://stackoverflow.com/a/605858/440558)。 –
此外,'sizeof'可能会根据结构填充返回不同的数字。 –
检查malloc的返回地址,如果它为NULL或不是用于错误处理 – user2760375