c++中指针保存字符串地址和指针使用new运算符创建字符串副本有什么区别
2个回答
展开全部
书上说,前者属于静态贮存,后者属于动态贮存,后者可以用delete删除
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举例说明:
char *p1,*p2;
char str[256]={ "Good!" };
p1=str;
p2=new char(256); strcpy(p2,"Good!");
例子中p1指向的str单元在编译程序时由编译器指定为程序保留存储空间,这部分空间位于非初始化段,程序加载完,进入main时就申请好了;p2通过new语句申请的存储区是运行程序时临时申请的,位于堆中,这个临时申请的内存区由程序负责管理,注意要由程序在退出时用delete语句删除申请的内存。
char *p1,*p2;
char str[256]={ "Good!" };
p1=str;
p2=new char(256); strcpy(p2,"Good!");
例子中p1指向的str单元在编译程序时由编译器指定为程序保留存储空间,这部分空间位于非初始化段,程序加载完,进入main时就申请好了;p2通过new语句申请的存储区是运行程序时临时申请的,位于堆中,这个临时申请的内存区由程序负责管理,注意要由程序在退出时用delete语句删除申请的内存。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询