【发布时间】:2021-12-15 17:21:24
【问题描述】:
此程序(进程 9164)的结果以代码 -1073741819 退出。 程序完成并且没有任何反应.....我应该怎么做才能让它只使用没有 *x[] 或 x[][2] 的指针运行
#include <iostream>
#include<string>
#include <fstream>
using namespace std;
void sum(int **x) {
int s = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
cout << *(*(x + i) + j) << " ";
s += *(*(x + i) + j);
}
cout << "\n";
}
cout << s;
}
int main() {
int x[3][2] = { {11,15},{19,28},{5,8} };
sum((int**)x);
return 0;
}
【问题讨论】:
-
像
(int**)x这样的C 风格转换可能非常危险。编译器不会告诉您x肯定不是int**。您的代码永远不会产生任何指向 int 的指针。