指针变量时遇到break语句
case 1:
{
cout << "Enter two array size" << endl;
cin >> num_arr_1; //size of array
cin >> num_arr_2;
int *parr_1 = new int[num_arr_1];
int *parr_2 = new int[num_arr_2];
//these two ptr variables had been initialized to NULL when declared
for (int i = 0; i < num_arr_1; i++)
cin >> *(parr_1 + i);
for (int i = 0; i < num_arr_2; i++)
cin >> *(parr_2 + i);
ifarray = 1;
break; //where problems all begin!
}
正如标题所说,我在与指针变量的问题parr_1
和parr_2
当它遇到break语句被重新初始化为0重新初始化。指针变量时遇到break语句
这里的调试步骤:
我真的不知道是什么原因引起的重新初始化...
只要我按F10(“跳过”)它向右走在switch
的情况下结束,并且在断开语句和开关情况结束之间没有任何可能导致麻烦的事情。
有任何想法或经验这样的事情?
BTW我发展与使用C视觉工作室++
在本地范围内(注意INT * parr_1是声明)你实际上是重新声明这两个变量。你需要重写为:
parr_1 = new int[num_arr_1];
parr_2 = new int[num_arr_2];
哦,哇,我刚刚意识到该死......我在变量中使用了与主函数相同的名称。真是太遗憾了,谢谢! –
这些行已经在我声明的不同功能。 我在重写它们时犯了错误 –
非常好!在代码片段中发现这点并不明显! – Christophe
你打算在'break'之后使用那些因为它们是在本地范围内声明的吗? – Stefan
您在休息时有内存泄漏。为什么你使用局部变量?为什么你使用新的而不是std :: vector? – 2017-09-23 17:08:57
ㄴmanni66 这就像是在学校的第一年,我对C++知之甚少......这对我来说是新的东西!虽然 –