char型存放在栈空间,而string类型存放在堆空间。
1、堆和栈的区别:
堆:用户级的内存分配,分配的内存要手动进行释放,否则会造成内存的泄露。例如malloc/free(c语言)、new/delete(c++)
栈:系统及的内存分配,是FIFO结构,内存始终连续出现无碎片。例如局部与自动变量
堆的大小远远大于栈
2、动态数组
int *p=new int [5]; delete [] p;
数组有三个重要的限制:长度固定不变、编译时必须知道长度、只能在定义的块语句中存在。因此产生了动态数组。
const对象的动态数组:必须进行初始化,所以这样的数组是没有太大用处的。