weixin_46614841 2023-05-28 16:05 采纳率: 50%
浏览 14
已结题

C++数据结构-链表创建出错-无法输入string类型数据

按照博主的方式【链接】,学习C++链表的知识。
基本上照搬,但是将名字改了一下。
博主定义的结构体

img

我定义的结构体

img

但这导致后边调用的时候出现问题

出错处

img

0x00007FF6347C7E38 处(位于 C++First_learn.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。 出现了

我查过网上资源,如【指示链接https://blog.csdn.net/weixin_44330072/article/details/106528599】提到的三个方向:数据越界、空指针、无效指针【无效我不知道如何体现】
尝试将name和sex的类型变为int,然后其它全不变,可以运行。将name和sex初始化为某些值(如NULL和"a")都不行

我再尝试博主【分享链接https://blog.csdn.net/gkzscs/article/details/51613595

img

但是我不会查看堆栈调用,并且我认为有可能是我分配空间出了问题

  • 写回答

1条回答 默认 最新

  • 0x0007 2023-05-28 18:06
    关注

    问题在于 point1 这个变量的生成方式,我看了原博,他也是用 malloc 的方式创建变量实例,这是不严谨的,因为 malloc 只是申请了一定尺寸的内存,但结构体内的字段变量如,information 以及 Information的name字段都没有被正确的初始化。

    在c++中,初始化结构体、类的常规方式是用 new 关键字,记得最终用 delete 销毁。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月28日