gpt4 book ai didi

c++ - 错误(std::bad_array_new_length) in a 2d array textbook example (Absolute C++, Savitch)

转载 作者:行者123 更新时间:2023-12-03 07:38:08 24 4
gpt4 key购买 nike

这是Walter Savitch的Absolute C++的教科书示例:
enter image description here
我尝试了其他版本,但出现错误,因此我尝试完全键入代码:

#include <iostream>
using namespace std;
typedef int* IntArrayPtr;

int main()
{
int d1, d2;
cout << "Enter dimensions (row*col): \n";
cin >> d1, d2;
IntArrayPtr *m = new IntArrayPtr[d1]; //Get me a d1 sized array of pointers
int i,j;
for(i=0; i<d1; i++)
m[i] = new int[d2]; //each element in the array should be an array of size d2
//m is now a d1*d2 array

cout << "Enter " << d1 << " rows of " << d2 << " integers:\n";
for(i=0;i<d1;i++)
for(j=0;j<d2;j++)
cin >> m[i][j];

cout << "Your arry:\n";
for(i=0;i<d1;i++)
{for(j=0;j<d2;j++)
cout << m[i][j] << " ";
cout << endl;
}

for (i = 0; i < d1; i++)
delete m[i]; //delete each pointer
delete[] m; //delete the master pointer

return 0;


}
当我尝试在文本中运行示例时,输入尺寸后就会出现错误。
enter image description here
谁能帮我找出问题所在?到目前为止,本教科书中的示例均未发生其他错误。

最佳答案

您的错误可能在此行上:cin >> d1, d2;应该是cin >> d1 >> d2;在我的情况下,使用少量警告标志集-Wall -Wextra进行编译,将立即向您显示此信息。
这是我收到的警告:

main.cpp:9:16: warning: expression result unused [-Wunused-value]
cin >> d1, d2;
^~
1 warning generated.
通过使用 the comma operator,是的,这就是一回事,您正在丢弃一个输入,而不是创建一个您认为自己的大小的数组。

关于c++ - 错误(std::bad_array_new_length) in a 2d array textbook example (Absolute C++, Savitch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65433008/

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