游戏开发论坛

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

C++中的动态分配二维数组难道只能分配系统自带的类型?

[复制链接]

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2006-4-10 16:39:00 | 显示全部楼层 |阅读模式

做一个有257 X 257个顶点大小的室外地形,需要动态分配二维数组 pVert[257][257],类型为自定义的向量结构体Vector3

而用下面的方法分配的二维数组一运行就出错,改成直接用就没事了。

struct Vector3
{
     float x , y , z;
};


  class CA
{
    Vector3** pVert;
};

  
  在初始化函数Init()中为这个二维数组分配空间

   void CA::Init()
  {
         pVert = new Vector3* [ 257 ];

         for( int i=0; i<257; i++ )
                  pVert = new Vector3[257];

   }

//结束,这样分配的不知道为什么,一运行就出错。

   

而将CA类中的    Vector3** pVert 改为Vector3 pVert[257][257]直接用,只要不用new分配就没不会出错了

  class CA
{
    Vector3 pVert[257][257];
};

这到底是为什么?????????????????

===================

请大家赐教,我这个二维数组的动态分配错在哪里?是不是因为Vector3是自定义的类型,我用int或者float等系统自带的类型就没有发生过错误。

请高手指教一二!


60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2006-4-10 17:06:00 | 显示全部楼层

Re:C++中的动态分配二维数组难道只能分配系统自带的类型

什么样的错误?我试了一下,分配和释放都不会出错.不知道你是怎么使用的,没办法试

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-4-10 17:57:00 | 显示全部楼层

Re:C++中的动态分配二维数组难道只能分配系统自带的类型

不知道是不是我学的不够好,二级指针==二维数组吗?

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2006-4-10 18:22:00 | 显示全部楼层

Re:C++中的动态分配二维数组难道只能分配系统自带的类型

不知道是不是我学的不够好,二级指针==二维数组吗?

-----------------------------

这是一种很常用的二维动态数组的分配方法啊!以前我经常用这种方法分配二维数组,不过都是系统自带的类型,比如int或者float。用自定义的类型我觉得应该一样,可是不知怎么就不对???????????

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2006-4-10 23:10:00 | 显示全部楼层

Re:C++中的动态分配二维数组难道只能分配系统自带的类型

不?????的。

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-4-11 00:17:00 | 显示全部楼层

Re:C++中的动态分配二维数组难道只能分配系统自带的类型

我用vs2005EE测试了一下以上的部分代码,没有什么错误呀!是不是这段程序的前面或者后面产生了错误从而导致了错误。

36

主题

109

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2006-4-11 00:28:00 | 显示全部楼层

Re:C++中的动态分配二维数组难道只能分配系统自带的类型

呵呵,我一直对动态构建二维数组比较犯触,所以一直用一维的顶替。

13

主题

113

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
发表于 2006-4-11 01:03:00 | 显示全部楼层

Re:C++中的动态分配二维数组难道只能分配系统自带的类型

首先,错误的提示和情形是怎样的?其次,请确定出现错误的代码段。最后,如果还不能发现错误,再把出现错误的代码发上来看看。

尽管我几乎从来不用这种表达方式,但根据语法分析,应该不会有问题。楼上的朋友也已经证实了。估计是内存越界。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 04:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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