Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 调整向量大小时出现运行时错误_C++_Linux_Vector_Console Application - Fatal编程技术网

C++ 调整向量大小时出现运行时错误

C++ 调整向量大小时出现运行时错误,c++,linux,vector,console-application,C++,Linux,Vector,Console Application,当我运行此程序时: #include <iostream> #include <vector> using namespace std; int main() { vector<vector<char> > screen; char ch = 'a'; unsigned col = 100, row = 100; if(screen.size() < (unsigned)row) scree

当我运行此程序时:

#include <iostream>
#include <vector>
using namespace std;


int main()
{
    vector<vector<char> > screen;
    char ch = 'a';
    unsigned col = 100, row = 100;
    if(screen.size() < (unsigned)row)
        screen.resize(row);
    if(screen[row - 1].size() < (unsigned)col)
        screen[row - 1].resize(col);
    screen[9][9] = ch;
    cout<< "hello";
    cout.flush();
}
在linux中。节目有什么问题吗


如果
的数字较低,则没有问题。

您正在将
屏幕
调整为
元素,但随后访问其中的元素
向量 S,如数组,基于0,所以有效索引为“代码> 0…ROW-1 < /P> 内部向量和
col
也是如此


它适用于较小的数字这一事实是一个(不幸的)不幸。

您正在将
屏幕
调整为
元素,但随后访问其中的元素
向量 S,如数组,基于0,所以有效索引为“代码> 0…ROW-1 < /P> 内部向量和
col
也是如此

它适用于较小的数字这一事实是(不幸的)不幸。

if(screen[row-1].size()<(unsigned)col)
屏幕[第1行]。调整大小(列);
您只需在此处调整
屏幕[99]
的大小<代码>屏幕[9]仍然具有大小
0
,这就是为什么您无法访问
屏幕[9][9]
(但是,您可以访问
屏幕[99][9]
)。

如果(屏幕[row-1].size()<(未签名)列)
屏幕[第1行]。调整大小(列);

您只需在此处调整
屏幕[99]
的大小<代码>屏幕[9]仍然有大小
0
,这就是为什么您无法访问
屏幕[9][9]
(但是,您可以访问
屏幕[99][9]
)。

零索引。一个100x100的向量每个有100个元素,从0到99.0。一个100x100的向量每个有100个元素,从0到99。我在发布之前更改了索引。现在问题已经解决了,问题还没有解决。我在发布之前更改了索引。现在问题已经解决了,问题还没有解决。谢谢这是一个大型程序的简短摘录,我应该再检查一遍。是的。谢谢这是一个大型程序的简短摘录,我应该再检查一遍。
Segmentation Fault (core dumped)
if(screen[row - 1].size() < (unsigned)col)
    screen[row - 1].resize(col);