【发布时间】:2012-07-19 06:34:43
【问题描述】:
我有一个关于动态数组范围的快速问题,我认为这会导致我正在编写的程序中出现错误。这个 sn-p 检查函数参数并根据用户传递的内容分支到第一个或第二个。
但是,当我运行程序时,我得到了一个范围相关的错误:
错误:“数组”未在此范围内声明
除非我对 C++ 的了解使我失败,否则我知道在分支完成时在条件内创建的变量会超出范围。但是,我动态分配了这些数组,所以我不明白为什么我不能在程序的后面操作这些数组,因为指针应该保留。
//Prepare to store integers
if (flag == 1) {
int *Array;
Array = new int[input.length()];
}
//Prepare to store chars
else if (flag == 2) {
char *Array;
Array = new char[input.length()];
}
有人能解释一下吗?
【问题讨论】:
-
由于这里的 cmets,我可能最终会更改此方法的整个结构。感谢所有帮助和各种解决方案!