在VC中,如何动态分配buffer空间??? 小弟在编程中需要如下定义: char pBuf[iLength]; 但是,iLength在每个进程中都不是相同的,分配多了,浪费,分配少了,不够用! 如果定义成: char *pBuf; 在编译中报错:没有对pBuf初始化! 请教,如何能动态分配buffer空间,使其能够自动调节buffer大小?????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定义+初始化:char *pBuf = NULL;需要使用iLength空间时,使用new申请内存空间pBuf = new char[iLength];使用结束后,记得通过delete释放内存空间:delete []pBuf;pBuf = NULL; 这个问题也许太简单了,我帮你一下吧char *pBuf = NULL; // 最好是全局的,易于delete!//在你使用pBuf之前if(!pBuf){ pBuf = new char[iLength];}//使用完之后delete [] pBuf; //这个十分重要,千万别忘了,会造成内存泄漏的! //使用完之后delete [] pBuf; //这个十分重要,千万别忘了,会造成内存泄漏的!pBuf = NULL; //这个忘了,sorry 这种方法我也会,问题是,一旦程序写完了,就不能再做更改了,如果这次我定义了iLength=2048,但是下一次需要4096怎么办?难道要再改程序?? iLength 是变量啊!你应该能让程序自动判断应该申请多少内存。 你可以在前面定义#define iLength 2048要时把2048改为4096即可 呵呵,比如这样:BYTE* buf[10];int i;for(i=0;i<10;i++){ buf[i]=new BYTE[i];}....for(i=0;i<10;i++){ delete[] buf[i];}明白了嘛?new BYTE[i]中i可以是变量! 还是关于多文档问题创建子窗口问题? 什么是字符型协议?什么是比特流型协议? 请教几个MFC函数的用法 关于做个象下面安装功能的程序,急用,高手帮忙一下 关于EnumProcessModules函数的一个问题 在静态函数中如何调用静态成员变量! CAnimateCtrl的奇怪问题 我火了,谁告书诉我这么解决150。 修改注册表后会产生什么消息? 这个枚举进程以及模块的代码编译通过,却输出为空,为什么呢? 怎样使线程结束自己? VK_ESCAPE与VK_CANCEL有什么区别啊?
pBuf = new char[iLength];使用结束后,记得通过delete释放内存空间:
delete []pBuf;
pBuf = NULL;
//在你使用pBuf之前
if(!pBuf)
{
pBuf = new char[iLength];
}//使用完之后
delete [] pBuf; //这个十分重要,千万别忘了,会造成内存泄漏的!
delete [] pBuf; //这个十分重要,千万别忘了,会造成内存泄漏的!
pBuf = NULL; //这个忘了,sorry
要时把2048改为4096即可
BYTE* buf[10];
int i;
for(i=0;i<10;i++)
{
buf[i]=new BYTE[i];
}....
for(i=0;i<10;i++)
{ delete[] buf[i];
}
明白了嘛?
new BYTE[i]中i可以是变量!