| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 617 人关注过本帖
标题:高手帮忙啊。。。无法赋值的问题。。。
只看楼主 加入收藏
ceinx1984
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-3-8
收藏
 问题点数:0 回复次数:9 
高手帮忙啊。。。无法赋值的问题。。。

class CPoint3D
{
public:
float m_X;
float m_Y;
float m_Z;
};
class CMesh
{
public:
CPhong* m_pForeColor;
CPhong* m_pBackColor;
CPhong* m_pForegroundColor;
int m_PositionCount;
CPoint3D** m_pPoints;
};

class CTriangleMesh : public CMesh
{
public:
int m_NormalCount;
CPoint3D** m_pNormals;
};
CTriangleMesh* mesh=new CTriangleMesh;
mesh->m_pPoints=new CPoint3D*[mesh->m_PositionCount];
mesh->m_pPoints[g]->m_X = 10;通过编译后运行时赋值时出错,显示:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 VS20005.NET环境下。。
大虾帮忙啊。。谢谢了。。

搜索更多相关主题的帖子: 赋值 
2007-03-08 20:40
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
收藏
得分:0 
可能是你那个 g 或者在 new CPoint3D * [....]这里时,mesh->m_PositionCount的值是0,你没发完整代码,难找出原因

2007-03-08 20:52
ceinx1984
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-3-8
收藏
得分:0 
mesh->m_PositionCount的值已经赋过了。。。这里是2
问题也不处在g。。g的初始值是0.。。从0开始就无法给mesh->m_pPoints[g]->m_X赋值。。。代码很长。。多了看上去很乱。。。挑了关键的。。只是想知道我这样给类数组定义然后赋值到底有没有错。。。谢谢楼上的了。。。
2007-03-08 21:59
ceinx1984
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-3-8
收藏
得分:0 

简单这么说吧。。
namespace aaaaa
{class CPoint3D
{
public:
float m_X;
float m_Y;
float m_Z;
};
class CMesh
{
public:
int m_PositionCount;
CPoint3D** m_pPoints;
};

class CTriangleMesh : public CMesh
{
public:
int m_NormalCount;
CPoint3D** m_pNormals;
};


}
之后在Form1.h中引用using namespace aaaaa;之后添加一个按钮。。双击按钮中进行添加: private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
CTriangleMesh* mesh=new CTriangleMesh;
mesh->m_pPoints=new CPoint3D*[mesh->m_PositionCount];
mesh->m_pPoints[0]->m_X = 10;//在这里就出现问题了。。。怎么回事啊??

}

2007-03-08 22:11
ceinx1984
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-3-8
收藏
得分:0 
不是mesh->m_pPoints=new CPoint3D*[mesh->m_PositionCount];  随便赋一个比如。。mesh->m_pPoints=new CPoint3D*[2];然后就出现尝试读取或写入受保护的内存。这通常指示其他内存已损坏。。。
2007-03-08 22:14
半支烟
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-1-16
收藏
得分:0 

mesh->m_pPoints=new CPoint3D*[mesh->m_PositionCount];

mesh->m_PositionCount 的值都还不确定,你怎么能去new呢?


2007-03-09 11:17
ceinx1984
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-3-8
收藏
得分:0 
搞定了。。。是没有为m_X分配空间。。
2007-03-09 21:51
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
呵呵,只为指针变量分配空间,却忘记为他指向的数据分配控件,不小心了。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-10 10:28
mykoma
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-3-10
收藏
得分:0 
嘿嘿

2007-03-11 12:39
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 
半枝烟厉害阿,一语点破

当你开始怀疑自己时,说明你已经失去了判断力
2007-03-13 10:44
快速回复:高手帮忙啊。。。无法赋值的问题。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030830 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved