一个类构造函数初始化的问题

tnt32 2011-05-01 09:51:47
可以通过编译,但是没法运行,问题好像出在类构造函数初始化上,
const unsigned int* cornerNode = NULL,是不是要改一下?
但是不知道怎么改,请高手帮忙。。。
多谢。


class QuadElement
{
private:
unsigned int* nodeIds_vec;

public:
QuadElement(const unsigned int N = 0,
NodalDG2DStorage* spA = NULL,
const unsigned int* cornerNode = NULL,
CurveInterpolant* Gamma_vec = NULL)
{
nodeIds_vec = new unsigned int [5];

for(unsigned int i = 1; i<= 4; i++)
nodeIds_vec[i] = cornerNode[i];

};

~QuadElement()
{
delete [] nodeIds_vec;
};

};
...全文
101 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tnt32 2011-05-02
  • 打赏
  • 举报
回复
多谢楼上的高手们指点,
的确是默认值null的问题,我取消了默认值,
直接先给与一定空间的值,
然后在加入public函数在后续中修改值。
谢谢。
xmu_才盛 2011-05-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bluesky12312388 的回复:]
给出你的调用代码。
你是不是用了默认的参数值? 这样肯定出错在 nodeIds_vec[i] = cornerNode[i];
因为cornerNode 为NULL,必定导致指针非法访问出错。
[/Quote]

++ 你这么多默认的参数, 外部如果没有传入 cornerNode , 能不溢出吗?
bluesky12312388 2011-05-01
  • 打赏
  • 举报
回复
给出你的调用代码。
你是不是用了默认的参数值? 这样肯定出错在 nodeIds_vec[i] = cornerNode[i];
因为cornerNode 为NULL,必定导致指针非法访问出错。
ri_aje 2011-05-01
  • 打赏
  • 举报
回复
具体怎么调用的?cornerNode使用默认参数会出问题的。
tnt32 2011-05-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 harry_lyc 的回复:]

C/C++ code

const unsigned int** cornerNode = NULL;/*int 后两个* */
[/Quote]

这位大哥,
quad_element.h|34|error: invalid conversion from 'const unsigned int*' to 'unsigned int'|
李亚超 2011-05-01
  • 打赏
  • 举报
回复

const unsigned int** cornerNode = NULL;/*int 后两个* */
tnt32 2011-05-01
  • 打赏
  • 举报
回复
就是直接退出,问我要不要汇编下debug
紫色动力 2011-05-01
  • 打赏
  • 举报
回复
报什么错呢?
紫色动力 2011-05-01
  • 打赏
  • 举报
回复
帮顶了,看不太懂

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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