正在阅读:『21天精通C++』第一周学习笔记『21天精通C++』第一周学习笔记

2004-02-14 09:34 出处:PConline 作者:雷神 责任编辑:zwg
第五天:new和delete是内存分配操作符,new用于分配内存,delete用于释放内存。 堆是计算机中一大块未使用的内存(除去操作系统和正在使用的应用程序所占内存之外的剩余内存),它的大小是随时在改变的,所以是动态内存。 在用new分配内存时不必对返回指针做类型转换。分配单一变量如int、float没有意义,分配数组时只需一个指针指向它的多个元素。 char *eName=new char[9]; delete [] eName;//释放为eName分配的所有内存。 堆不会自己初始化,必须用自己的数据初始化。 应该在分配内存时进行初始化 char * eName=new char('a');//这是一个字符。 char * eName=new char[9];//这是一个数组,有九个元素(如果是字符串,还要包括NULL0的空间)。 strcpy(eName,"base wood");//初始化数组的例子。 两维或两维以上的数组称为多维数组,也可叫矩阵(一维以上的数组,也称表)。 dataType (*matrixName)[numELs]....//矩阵变量的定义。 dataType//是任意的数据类型包括用户自定义的 matrixName//矩阵变量的名 numELs//除第一维后的维的大小。 例子: float (* table)[6];//定义矩阵变量 table=new float[5][6];//分配存放30个浮点数的内存给矩阵变量。 float * table[6]=new float[5][6];//可以合并为: delete [] table;//全部释放 异常处理是一个术语,指在一个错误(一个异常)发生时自动执行的函数,VC++的异常处理函数: _set_new_handler(),在一个new失败时用户可以强迫异常处理程序执行自己的错误函数。_set_new_handler()自动检测所有的new操作并在必要时进行干涉。
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品