引发了异常: 写入访问权限冲突。 _Left 是 0xCDCDCDCD。

关于malloc和new的一点问题

在做单链表完成通讯录的时候被这个卡了一天,连实验报告都没交上,有点怀疑人生了气死了

异常截图

之前做的单链表一直都是一个数据+一个指针,如下

typedef int ElemType;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

在这个结构下一直都是用malloc来定义一个空指针
p=(LNode *)malloc(sizeof(LNode));

——————————
2021.9.26更新:

p=(ElemType *)malloc(sizeof(ElemType)*InitSize);>
以这个形式定义元素>1个的即可。

——————————

于是乎今天做通讯录管理的时候,也是这么用的,但是通讯录不只一个数据

typedef struct LNode
{
	int ID;
	string name;
	string sexual;
	string tele;
	string email;
	struct LNode* next;
}LNode,*LinkList;

还是采用malloc定义后,报错了一天!!!!!!!!经过我不停地寻找同题目大佬的代码后,终于看到了一个老师用new来定义指针,成功实现了没有异常报错
自己研究了下,发现malloc只能输入一个数据,如果再继续输入下一个,就会异常报错,恍然大悟了xdm
原来malloc那样定义是无法给你足够的分配空间存储1个以上的数据的,但是我对malloc了解不深,如果有大佬知道malloc怎么做到定义存储如上链表数据的空间还请告知我!

用new来分配数据空间,xdm,new是yyds!

务必和delete搭配使用

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值