C++结构体里面string类型赋值问题
作者:网络转载 发布时间:[ 2014/8/6 12:00:18 ] 推荐标签:软件开发 .NET 结构体
#include<string>
using namespace std;
struct temp
{
string s;
};
int main()
{
const string p="aaa";
temp *q;
q=(struct temp*)malloc(sizeof(struct temp));
q->s=p;
}
上述那种情况的赋值会导致程序中断
需要用用new来分配内存,malloc不会调用结构函数
结构体内的string不定长,不能动态分配内存。
#include<string>
using namespace std;
struct temp
{
string s;
};
int main()
{
const string p="aaa";
temp *q;
//q=(struct temp*)malloc(sizeof(struct temp));
q = new temp;
q->s=p;
C++的结构体和类都有默认构造函数的,不写都会自动实现一个。
malloc只是分配内存。
new除了分配内存还会调用构造函数的。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
编程常用的几种时间戳转换(java .net 数据库).Net中关于相等的问题Asp.net MVC如何对所有用户输入的字符串字段做Trim处理Asp.Net WebForm生命周期的详解.Net开发的两个小技巧asp.net 六大内置对象.Net基础体系和跨框架开发普及Linux使用Jexus托管Asp.Net Core应用程序不被看好!苹果收购Netflix或将两败俱伤C#控制台程序使用Log4net日志组件asp.net登录验证码实现方法ASP.NET自带对象JSON字符串与实体类的转换从 .NET 和 Java 之争谈 IT 行业.Net高效开发之不可错过的实用工具ASP.NET MVC必须知道的那些事!Linux Netlink基本使用

sales@spasvo.com