函数体中有代码
int num;
unsigned char* buf1=NULL;
for(i=0;i<length;i++)
{
preChar=p1[i].preChar; //第一字节存放原字符
uBitLength=p1[i].bit.GetLength(); //第二字节存放位长
num=uBitLength%8?uBitLength/8+1:uBitLength/8; //其后存放编码
buf1=new unsigned char[num];
for(int j=0;j<num;j++)
buf1[j]=p1[i].bit.GetVector(j);
file.write(&preChar,1);
file.write((char*)&uBitLength,1);
file.write((char*)buf1,num);
delete []buf1;
}
为什么运行到buf1=new unsigned char[num];
提示异常内存 位置处的std::bad_alloc
内存也就用了3M多
int num;
unsigned char* buf1=NULL;
for(i=0;i<length;i++)
{
preChar=p1[i].preChar; //第一字节存放原字符
uBitLength=p1[i].bit.GetLength(); //第二字节存放位长
num=uBitLength%8?uBitLength/8+1:uBitLength/8; //其后存放编码
buf1=new unsigned char[num];
for(int j=0;j<num;j++)
buf1[j]=p1[i].bit.GetVector(j);
file.write(&preChar,1);
file.write((char*)&uBitLength,1);
file.write((char*)buf1,num);
delete []buf1;
}
为什么运行到buf1=new unsigned char[num];
提示异常内存 位置处的std::bad_alloc
内存也就用了3M多
解决方案 »
- 关于使用installshield2009打包的问题
- 大家好,一个技术问题困惑了很长时间,急切盼望给有建设性意见,不吝给分
- 想知道一个计算机上安装了几个硬盘,怎么通过编程实现
- LDAP的问题。欢迎关注。
- 我的一个小程序用到了.txt文件,请问如何将.txt文件编译进DLL文件中?急!!
- 如何在列表框中放多列的CheckBox?在线等!分不够可以再加!
- 有谁知道 CNN 美国有线新闻网的英文全称?
- 动态[],在线等待。。。请高手帮忙。。。谢谢
- 各位大师帮个忙!
- 病毒形成的folder.htt和desktop.ini,有什么可以杀?
- 同一个程序不同电脑中生成的exe——PE文件内容有很大不同
- 我的程序在执行是出现了Unhandled exception in XXX.exe(USER32.DLL):0X0000005:Access V
preChar=p1[i].preChar; //第一字节存放原字符
uBitLength=p1[i].bit.GetLength(); //第二字节存放位长
num=uBitLength%8?uBitLength/8+1:uBitLength/8; //其后存放编码楼主
length 有多长不知道
p1 里面放什么东西不知道.
num 每次有多大也不知道,很难帮楼主DEBUG的喔.
先看看值。。
这个会是1?取出8的整数倍数的长度
先一步步把自己想要做的要求分析清楚 这样会比较容易找出问题
你确定你的 length num的值了吗? 是否正常?先debug这个地方看看
c++ 有 半年没碰了 忘了delete 是 删除 栈和堆之间的链接 还是 直接把栈(即指针)删了
如果是直接删了 那么就会出现bad_alloc 即 错误分配空间