函数int指针参数异常

haomingzidoumeilea 2014-09-10 03:04:29
0x010B3421 处有未经处理的异常(在 test.exe 中): 0xC0000005: 读取位置 0x00390000 时发生访问冲突。

请问大神,为什么说读取冲突呢?
而我直接用函数int指针测试却没有报错呢?

#include <iostream>
using namespace std;

struct TreeNode
{
int mValue;
TreeNode *mRight,*mLeft;
};

TreeNode* ConstructCore(int *per_begin,int *per_end,int *in_begin,int *in_end)
{
int test=*per_begin; //在这里异常 TreeNode *root =new TreeNode;
root->mValue = per_begin[0];

int *temp_in = in_begin;

while (*per_begin!=*temp_in&&temp_in<=in_end)
{
temp_in++;
}
int leftLength = temp_in-in_begin;

root->mLeft=ConstructCore(per_begin+1,per_begin+leftLength,in_begin,temp_in-1);
root->mRight=ConstructCore(per_begin+leftLength+1,per_end,temp_in+1,in_end);

return root;
}

//后续输出
void postPrint(TreeNode *root)
{
if (root)
{
postPrint(root->mLeft);
postPrint(root->mRight);
cout<<root->mValue<<" ";
}
}

void test1(int *p)
{
int temp=*p;//用这个测试不异常 cout<<temp<<endl;
}

int main()
{
const int length = 8;
int preorder[length] = {1, 2, 4, 7, 3, 5, 6, 8};
int inorder[length] = {4, 7, 2, 1, 5, 3, 8, 6};

TreeNode *root = ConstructCore(preorder,preorder+length-1,inorder,inorder+length-1);
postPrint(root);

//test1(preorder);//用这个测试不异常 //test1(preorder+length-1);

system("pause");
return 0;
}
...全文
127 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongxiao921 2014-09-10
  • 打赏
  • 举报
回复
引用 2 楼 truelance 的回复:
ConstructCore()一开始要加上递归终止条件 if (per_begin > per_end) return NULL;
应该是没有加递归终止条件造成的问题。。
haomingzidoumeilea 2014-09-10
  • 打赏
  • 举报
回复
引用 2 楼 truelance 的回复:
ConstructCore()一开始要加上递归终止条件 if (per_begin > per_end) return NULL;
原来 断点F10, 跑递归函数 第一次的数值就是最里层的....那入栈是什么时候开始的呢?怎么没断点跑入栈...直接是出栈呢...
haomingzidoumeilea 2014-09-10
  • 打赏
  • 举报
回复
恩 多谢!是的。
熊熊大叔 2014-09-10
  • 打赏
  • 举报
回复
ConstructCore()一开始要加上递归终止条件 if (per_begin > per_end) return NULL;
haomingzidoumeilea 2014-09-10
  • 打赏
  • 举报
回复
12行和54行是这样: 修改颜色导致发代码出问题. int test=*per_begin; //在这里异常 TreeNode *root =new TreeNode //test1(preorder);//用这个测试不异常 //test1(preorder+length

64,654

社区成员

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

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