在C++中支持动态分配内存
但是我有一个问题,那就是在行如
int *p=new int[表达式];中的表达式是不是可以不写的?
如果是必须写,那么动态表现在哪?
但是我有一个问题,那就是在行如
int *p=new int[表达式];中的表达式是不是可以不写的?
如果是必须写,那么动态表现在哪?
解决方案 »
- mfc写的程序,用debug运行没问题,用release运行提示内存不足
- 紧急求教:调用SerialPort类进行串口发送问题
- 有没有考虑过IBM笔记本上的振动检测软件。。。。什么原理? 讨论一下。。。
- MSDN的使用问题
- 我的Splitter想自己来画,请问高手,有没有现成的例子看看?50分相送
- 一个很深的问题,高手帮忙分析一下: CPropertySheet 中HELP按钮的ID_HELP报错?
- 怎么在窗口中显示jpeg和gif图像?
- 怎样在MDI启动子窗体实现子窗体最大化,在线等待,马上给分!
- 如何解决WIN32 SDK的资源不足的情况?
- 谁有关于进程的例子吗?请帮帮忙给我找一个!
- 如何启动一个exe程序同时获得此进程的HANDLE
- 请教一个数据采集的问题?
int *p=new int;
申请一个数组
int *p=new int[100];
int nLeng = str.GetLength() + 1 ;
char * p = new char[nLeng]; //不会浪费, 也不会少
strcpy(p,str);
//....
delete [] p;
int nLeng = str.GetLength() + 1 ;
char * p = new char[];
strcpy(p,str);
//....
delete [] p;释放时有问题
你说的那个“表达式”就是用于在运行时根据具体需要,“动态”确定要分配的大小。
举个小例子:
char buff[256]; // 静态
char *buff = new char[(rand() % 256) + 1]; // 动态
不写代表使用堆分配分配内存
如:MyStructType* myStruct = new MyStructType;// 通过指针使用该结构myStruct->topScore = 297;delete myStruct;写上代表分配一个数组空间,如:
int* myIntArray = new int[BUFF_SIZE];...
delete [] myIntArray;