读书人

C++内存储器分配及字符串赋值

发布时间: 2013-03-06 16:20:31 作者: rapoo

C++内存分配及字符串赋值

本文介绍在Ubuntu12.10,g++环境下C++内存分配问题。并由此解释在用g++编译时,字符串常量赋值给字符指针类型时提示“warning:deprecated conversion from string constant to 'char *'”警告的原因。

一、C++内存分配

C++内存储器分配及字符串赋值

C++编译器将应用程序的内存空间分成四个部分,从内存低地址开始依次为:代码和常量区(用于存储只读的代码数据和常量值)、全局变量和静态变量区(用于存储全局变量和静态变量)、堆区(用于保存new、malloc申请的内存)、栈区(用于保存函数返回地址、局部变量等)。

我们将用如下代码来测试我们的假设:

char*ptrSt = (char*)malloc(sizeof(char) * 6);strcpy(ptrSt,“hello”);

Reference

1.C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区

2.C/C++编程:结合内存分布图分析内存问题

3.关于程序设计的内存分配问题

4.关于函数字符数组调用的问题(没有搞清指针的概念)


读书人网 >C++

热点推荐