读书人

小弟我这样申请内存有有关问题吗

发布时间: 2012-06-16 20:34:32 作者: rapoo

我这样申请内存有问题吗?
运行的时候就报错了,当然不是以下代码

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越界操作

读书人网 >VC/MFC

热点推荐