当前位置:  开发笔记 > 编程语言 > 正文

在C中使用malloc和struct

如何解决《在C中使用malloc和struct》经验,为你挑选了1个好方法。



1> StoryTeller ..:

sizeof*(struct person)是语法错误.编译器将其视为尝试应用sizeof运算符*(struct person).由于您无法取消引用某个类型,因此编译器会抱怨.我想你打算写下面的内容:

personPtr = malloc(sizeof *personPtr);

这是分配personPtr指向的任何东西的惯用方式.现在只在指定定义的位置指定类型,这是一件好事.您也不需要转换结果malloc,因为它void*可以隐式转换为任何指针类型.

第二个错误是双重的:

    name是一个固定大小的数组.您无法使用赋值运算符分配给数组.您只能分配给每个单独的元素.

    getchar返回单个字符,而不是您期望的字符串.要读取字符串,您可以使用scanf("%17s", personPtr->name).17是缓冲区的大小 - 1,当scanf在字符串中添加NUL终结符时,防止缓冲区溢出.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有