游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1698|回复: 7

关于new的问题

[复制链接]

57

主题

139

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2006-2-7 16:12:00 | 显示全部楼层 |阅读模式
书上说
new int[n][4]    allocates an array of pointers to int

new *int[n]
有什么不同?
内存具体如何分配?

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-2-7 18:08:00 | 显示全部楼层

Re:关于new的问题

晕~
new int[n][4] ?能这样写吗?!

11

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2006-2-8 00:15:00 | 显示全部楼层

Re: Re:关于new的问题

hdm2968: Re:关于new的问题

晕~
new int[n][4] ?能这样写吗?!


呵呵,这位兄台都爱心骑士了,也有不明白的时候啊:)
这恰恰体现了C++的博大精深啊。

new int[n][4]是正确的C++语法。
它返回一个含n个元素的数组,该数组每元素也是一个数组:int[4]。
new *int[n]也是返回一个含n个元素的数组,但该数组的元素却是int*。因此前者已经申请了存储每个int数组的空间,后者只是指针,需要再申请空间。

其实把它们写完整了就很容易辨别:
int (*p)[4] = new int[n][4];
int **p = new *int[n];

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2006-2-8 01:17:00 | 显示全部楼层

Re:关于new的问题


那个爱心骑士称号,其实和水平没有直接的关联,它是发贴得多少地反映而已。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-2-8 12:42:00 | 显示全部楼层

Re: Re: Re:关于new的问题

kinglytt: Re: Re:关于new的问题



呵呵,这位兄台都爱心骑士了,也有不明白的时候啊:)
这恰恰体现了C++的博大精深啊。

new int[n...

他又没写指针声明,我只知道int** p=new int [n][4];是不行的。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-2-8 12:42:00 | 显示全部楼层

Re: Re:关于new的问题

航天奇侠: Re:关于new的问题


那个爱心骑士称号,其实和水平没有直接的关联,它是发贴得多少地反映而已。

正是

6

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2006-2-12 02:07:00 | 显示全部楼层

Re:关于new的问题

int **p = NULL;
p  = new int[n];
*p = new int[4];
这样写可以吗

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2006-2-12 02:38:00 | 显示全部楼层

Re:关于new的问题

-,-,我现在还在用malloc/free,sigh。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 10:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表