使用try/catch访问未知大小的数组
C++: accessing an array of unknown size by using try/catch
我使用Java很长一段时间了,不得不回到c++。我以前在c++中没有那么多地使用try/catch,现在当我再次工作时,我遇到了一个可能非常愚蠢的问题。
我有一个未知大小的数组,想要计算其中存在的所有数字。然而,我不想使用c++向量,因为它会给我一个确切的大小。我所尝试的是有一个不应该自己结束的for循环。我想在抛出异常时中断它,这样我就可以捕获并处理这个问题。但是,它不会工作,也不会抛出异常。
有谁能开导我一下吗?:)谢谢。
for(int i = 0; i < 1000; i++) {
try {
cout << symbols[i] << " ";
} catch (int ex) {
cout << "thrown";
break;
}
}
访问超出其边界的数组会产生未定义行为也不例外。
一个未定义的行为意味着程序不再是一个有效的c++程序,可能会显示任何行为,正确或不正确,但你不能依赖它是一致的。
您需要自己跟踪大小,并使用该大小进行循环,或者根据需要抛出异常。
未定义行为意味着任何都可能发生。它当然不意味着"将抛出类型为X的异常"。您的程序处于未定义状态。即使你能抓住它,你会怎么做来修复它?你什么也做不了,你的程序已经坏了
相关文章:
- C++未知长度字符串的数组,其行为类似于 Python 字符串列表
- C++中数组大小未知的指针转换
- 如何定义在编译时数据未知的 const 数组
- 在C++中初始化第一维大小未知的二维数组
- 在带有模板的函数中传递未知大小的 std::数组.如何更正此代码?
- 你能让数组中的项数未知吗
- 当数组大小在C++中未知时,如何在运行时将对字符串数组的引用作为函数参数传递?
- 如何将输入到具有未知数量元素的数组中?
- 获取由空格分隔的未知大小的单行输入,并将其存储到整数数组中
- 使用 ReadProcessMemory() 将未知大小的字符数组或字符串读入 wstring 中
- 未知容器、向量或数组 c++ 的大小
- 未知大小的数组作为类成员,用于在运行时(对象创建时间)创建数组的对象
- 构造函数初始化器列表中未知长度的数组
- 在 c++ 中使用未知元素初始化的字符数组
- 特征:将数组映射到矩阵大小未知的矩阵
- 如何声明一个未知大小的数组,然后输入直到我想要,然后获取数组的大小
- 如何在 C++ 中将值附加到未知大小的数组中
- 如何确定未知类型数组的索引是否为空
- 使用数组和布尔值在输出未知时从输出中删除逗号
- 如何正确写入多维字符数组未知数量的值,但固定的字符堆