gpt4 book ai didi

c++ - 段错误二维数组

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

我是编程新手,我正在尝试理解二维数组。我写这段代码只是为了测试我的代码,看看它是否有效。不幸的是,我遇到了段错误。我知道这意味着我写的东西对于编译器来说是不可读的,但我不知道它是什么。因为我觉得一切都很好。

#include<iostream>


using namespace std;


int main(){

int col, row,i;
int **array;

cout << "How many rows?\n";
cin >> row;
cout << "How many colomns\n";
cin >> col;

cout << "!!!!!!!!!!!!";

array = new int*[row];
for (int i = 0;i<row;i++){
array[i] = new int[col];
}

cout << "!!!!!!!!!!!!";

for( i=0; i<row; i++){
int x=1;
array[0][i]= x;;
x++;
}
cout << "!!!!!!!!!!!!";
cout << array[row][col];

for(i=0; i<row; i++){

delete [] array[i];
delete [] array;
}
return 0;
}

错误是:“几行?3个多少列3个段错误(核心已转储)"

最佳答案

array[0][i]= x;看起来不对。应该是:

array[i][0]= x;

第一个索引用于行,第二个索引用于列。

后来cout << array[row][col];也被拧成row超出范围。

你删除数组的方式也不对,应该是:

for(i=row - 1; i >= 0; --i){
delete [] array[i];
}
delete [] array;

关于c++ - 段错误二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36324488/

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