指针变量在遇到断裂语句时重新初始化
Pointer variable reinitialized when encountered break statement
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。
在这里调试步骤:
遇到断路语句
休息时间之后
我真的不知道是什么原因导致它重新初始化...
我按F10("踩踏")立即进入switch
案例的末端,并且没有任何可能在断路语句和交换机结束之间造成麻烦。
有这样的想法或经验?
btw i使用C
您实际上是在本地范围中重新计入两个变量(note int * parr_1是声明)。您需要重写为:
parr_1 = new int[num_arr_1];
parr_2 = new int[num_arr_2];
相关文章:
- 当返回语句时,逗号运算符、大括号初始化列表和 std::unique_ptr 组合在一起
- 如何在列表初始化中放置额外的语句?
- 在c++中的复制构造函数/一个声明语句中的初始化的延续中使用chain方法
- 返回语句中矢量初始化时出现编译错误
- (C++)for循环中的空初始语句是否保存所有编译器中变量的上一次初始化
- 初始化语句中临时 std::元组的开销
- 宏的 if 语句中的变量初始化
- 交换机案例语句中的初始化错误
- 为什么允许在开关语句中声明变量?但不是声明 初始化
- 如何在 switch 语句中正确初始化不同的派生类
- 指针变量在遇到断裂语句时重新初始化
- 在 switch 语句中初始化变量 (int32)
- 在switch语句中初始化时未定义的变量
- 用于初始化派生类型的泛型 switch 语句
- 如何访问在 try 语句中初始化的对象
- 我可以在"for"循环中有两个初始化语句吗?
- 初始化开关大小写语句中的数组
- 从if语句中初始化C++11线程
- 为什么C++不需要"new"语句来初始化 std::vector?
- 在for循环初始化语句中声明未命名结构体