我遇到过这样一种情况,我必须将函数中的一些数学运算转换为矩阵(在编译时它的维度是未知的,所以我必须将它保存为一个指针),然后将它等同于我作为参数传递给功能。
代码每次都会抛出一个分段错误。我在这里有一个示例代码:
#include <iostream>
using namespace std;
void assign(int **a)
{
int **A = new int* [3];
int i, j;
for(i = 0; i < 3; i++)
A[i] = new int[3];
for(i = 0; i < 3; i++)
for(j = 0; j < 3; j++)
A[i][j] = 100;
a = A; /* equating the pointers */
}
int main()
{
int **ptr;
assign(ptr); /* Passing my pointer into the function */
cout << ptr[0][0] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
代码是用 …