帮看下这个用delete不

antiMight 2012-06-25 09:45:15
DWORD numSubsets = 0;
Mesh->GetAttributeTable(0, &numSubsets);
D3DXATTRIBUTERANGE *table = new D3DXATTRIBUTERANGE [ numSubsets];
Mesh->GetAttributeTable(table, &numSubsets);

第三行new了,没释放不对的吧?
还有不new 行不行?比如这样,
D3DXATTRIBUTERANGE table[numSubsets];
Mesh->GetAttributeTable(table, &numSubsets);
...全文
210 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
aLibra12 2012-07-23
  • 打赏
  • 举报
回复
因为你这是动态分配的数组,当然要delete,而且应该是delete[],否则就会有内存泄露了。
antiMight 2012-07-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

D3DXATTRIBUTERANGE *table = new D3DXATTRIBUTERANGE [ numSubsets];
这里的table是列表的指针;
D3DXATTRIBUTERANGE table[numSubsets];
这里table就是一个列表。

指针应该删除,列表不能被删除。
[/Quote]
嗯,我没有要手动删除第二种的意思,我说第二种目的就是为了省去手动delete,可是正如whbzealot所说,数组必须是静态的。table是栈分配的指针,指向了堆里new的列表,第二个列表本身在栈里,不用手动管理内存。我的问题主要是针对第一个的,因为这是书里看到的,我感觉应该delete的,所以来问下,也就是说,你认为第一种应当手动delete是吧?
  • 打赏
  • 举报
回复
D3DXATTRIBUTERANGE *table = new D3DXATTRIBUTERANGE [ numSubsets];
这里的table是列表的指针;
D3DXATTRIBUTERANGE table[numSubsets];
这里table就是一个列表。

指针应该删除,列表不能被删除。
  • 打赏
  • 举报
回复
1 原则上是谁申请 谁负责释放内存
2 数组必须是静态的 动态分配不能用数组
antiMight 2012-07-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

D3DXATTRIBUTERANGE table[numSubsets];table指列表,table[1]指第一个元素。
列表的元素和指针在引用的时候很相似,但却不是一回事。
[/Quote]
多谢关注。
那table[0]指的是什么呢?
和这个不一样吗?
int a[10];
cout << &a << " "<<&a[0];
还有要不要delete呢?
  • 打赏
  • 举报
回复
D3DXATTRIBUTERANGE table[numSubsets];table指列表,table[1]指第一个元素。
列表的元素和指针在引用的时候很相似,但却不是一回事。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
你所指的列表指针是说D3DXATTRIBUTERANGE table[numSubsets];table吗?table不是指向数组中第一个D3DXATTRIBUTERANGE的指针吗?,D3DXATTRIBUTERANGE *table,这个的话table指的不也是第一个D3DXATTRIBUTER……
[/Quote]
D3DXATTRIBUTERANGE table[numSubsets];table指第一个元素;
D3DXATTRIBUTERANGE *table,这个table才是指针。
antiMight 2012-07-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

不对;不是一回事。
列表的指针与对象的指针指的内容不同。
[/Quote]
你所指的列表指针是说D3DXATTRIBUTERANGE table[numSubsets];table吗?table不是指向数组中第一个D3DXATTRIBUTERANGE的指针吗?,D3DXATTRIBUTERANGE *table,这个的话table指的不也是第一个D3DXATTRIBUTERANGE吗?第二个我用vs试了,确实不行,说声明数组时长度要用常量。
那第一个用不用delete呢?自己new的应该自己delete的吧?
  • 打赏
  • 举报
回复
不对;不是一回事。
列表的指针与对象的指针指的内容不同。

8,325

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧