我这样申请内存有问题吗?
运行的时候就报错了,当然不是以下代码
- C/C++ code
void ListBox::AddItem ( TCHAR *pText){AddNew: if( 1 + ItemCount <= BufferItem ) { CtrlInfo Info; Info.height = ItemHeight; Info.width = LBackDes.Size.x - ScrollBar_V->ScrollInfo.width - Ladjust * 2; Info.x = LBackDes.Loaction.x + Ladjust; Info.y = (ItemCount * Info.height) + (LBackDes.Loaction.y) + Ladjust; Item[ItemCount].AddItem( pCtrlClass,Info,pText,&ListBoxPro,(HWND)this,idContain,ItemBase + ItemCount); } else { BufferItem += 10; ListItem *tempItem = NULL; tempItem = new ListItem[ BufferItem ]; CopyMemory(tempItem,Item,sizeof(ListItem) * (BufferItem - 10)); delete[] Item; Item = tempItem; goto AddNew; } ItemCount ++; ScrollBar_V->SetVal(0,ItemCount);}[解决办法]
应该可以啊
崩溃后,查看调用堆栈,找到出错的代码,查看变量
[解决办法]
请具体说明哪一行报错。
[解决办法]
哪里错误?是delete[] Item;这里吗?还是CopyMemory,看喜下是否对Item越界操作