C++内存分配及字符串赋值
本文介绍在Ubuntu12.10,g++环境下C++内存分配问题。并由此解释在用g++编译时,字符串常量赋值给字符指针类型时提示“warning:deprecated conversion from string constant to 'char *'”警告的原因。
一、C++内存分配
C++编译器将应用程序的内存空间分成四个部分,从内存低地址开始依次为:代码和常量区(用于存储只读的代码数据和常量值)、全局变量和静态变量区(用于存储全局变量和静态变量)、堆区(用于保存new、malloc申请的内存)、栈区(用于保存函数返回地址、局部变量等)。
我们将用如下代码来测试我们的假设:
char*ptrSt = (char*)malloc(sizeof(char) * 6);strcpy(ptrSt,“hello”);Reference
1.C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
2.C/C++编程:结合内存分布图分析内存问题
3.关于程序设计的内存分配问题
4.关于函数字符数组调用的问题(没有搞清指针的概念)