gpt4 book ai didi

c++ - 遇到中断语句时重新初始化指针变量

转载 作者:行者123 更新时间:2023-11-28 01:43:05 26 4
gpt4 key购买 nike

    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_1parr_2 在遇到 break 语句时被重新初始化为 0 的问题。

这里是调试步骤:

我真的不知道是什么导致它重新初始化...

只要我按下 F10(“step over”),它就会直接进入 switch case 的结尾,在 break 语句和 switch case 的结尾之间没有任何可能导致问题的东西.

有这样的想法或经验吗??

顺便说一下,我使用 C++ 使用 Visual Studio 进行开发

最佳答案

您实际上是在局部范围内重新声明这两个变量(注意 int * parr_1 是声明)。您需要重写为:

     parr_1 = new int[num_arr_1]; 
parr_2 = new int[num_arr_2];

关于c++ - 遇到中断语句时重新初始化指针变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46382150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com