结构体中含有string 会异常的原因和解决办法
来源:互联网 发布:更新ios6的软件 编辑:程序博客网 时间:2024/06/15 10:32
#include <iostream>#include <string>#include <cstdio>using namespace std;typedef struct node{string str;}NODE;int main(){string var = "lirao";NODE * node = (NODE *)malloc (sizeof(NODE));node->str = var;}
对于这个程序,在程序调试过程中,在程序的最后一行是无论如何都过不了的。出现的错误就是内存访问冲突。但是如果我们把malloc分配的内存改为new分配,NODE*node = new NODE(),问题立马就解决了,这是为什么呢?
只是因为在NODE 结构中包含了string类型成员,用malloc分配时,由于malloc没有这样的机制,导致无法调用string的构造函数,所以无法构建起string对象,给一个不存在的对象赋值肯定错误。但是new分配内存时有这样的机制,调用了string的构造函数,所以就构建起了对象,内存访问冲突就不会发生了。
结构体中定义string变量
阅读全文
0 0
- 结构体中含有string 会异常的原因和解决办法
- 含有string成员的结构体变量,为什么不能初始化?
- 块中含有自定义实体时调用explode()失败的原因及解决办法
- 常见的异常产生的原因和解决办法
- 关于结构体中含有指针时候的内存分配
- jsonModel 中含有id的解决办法
- string中含有 '/0'的使用
- get请求时候参数中含有“中文”字段出现乱码问题的原因和解决方法
- latex 中,代码注释含有中文和英文,英文会跑后面的问题。
- ORA-01795异常的原因以及解决办法
- HttpClient的CircularRedirectException异常原因及解决办法
- HttpClient的CircularRedirectException异常原因及解决办法
- HttpClient的CircularRedirectException异常原因及解决办法
- 结构体中含有指针如何初始化
- SearchView中onQueryTextSubmit()执行两次的原因和解决办法
- iOS8中设置applicationIconBadgeNumber提示错误信息的原因和解决办法
- eclipse中tomcat启动卡住的原因和解决办法
- Android中ANR的产生原因和解决办法
- Node.Js连接mysql
- invalid maximum heap size:-xmx4g
- 使用nodeJs+web Socket构建即时通讯(WebIM)
- CSS设置多余的文本显示省略号
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- 结构体中含有string 会异常的原因和解决办法
- laravel5.4 发送SMTP邮件
- 共享动画基本使用
- bootstrap datepicker显示日历
- python连接mysql
- vim命令
- 什么是ARM中的SP(堆栈)和LR?
- Java多线程--并发中集合的使用之ArrayBlockingQueue
- mysql分库分表方案浅析