필자의 논문을위한 코드를 개발하려고하는데, 2D 배열을 함수에 전달하는 방법을 배우려고했다. 나는 썼다. 코드는 아래에 있으며이 양식에서는 작동하지 않습니다. 이 오류가 있습니다 :함수에 전달되는 C++ 2d 배열
error: cannot convert ‘float (*)[(((sizetype)(((ssizetype)n) + -1)) + 1)]’ to ‘float (*)[2]’ for argument ‘3’ to ‘void func(int, int, float (*)[2], float)’ func(m, n, a, omega);
이 행렬 선언을 변경하면 float a [m] [n]; 떠 다니는 [2] [2] 작동 중입니다. 미리 감사드립니다.
void func(int m1, int n1, float a1[2][2], float omeg);
using namespace std;
int main(){
int m = 2;
int n = 2;
int i, j;
float a[m][n];
float x,y,z,omega, c;
x=0.1;
y=0.2;
z=0.3;
c = 0;
omega = (x*y*z)/x;
for(j = 0; j < n; j++)
{
for(i = 0; i < m; i++)
{
a[i][j] = 0.0;
}
}
func(m, n, a, omega);
cout << a[1][0] << endl;
return 0;
}
void func(int m1, int n1, float a1[][2], float omeg)
{
for(int j = 0; j < n1; j++)
{
for(int i = 0; i < m1; i++)
{
a1[i][j] = omeg * 5;
}
}
}
사용'const'을 m' 및'n''을 위해, 다른 사람이 아닌 표준 확장 가변 길이 배열 (VLA)를 사용합니다. – Jarod42
배열 대신 vector (www.cplusplus.com/reference/vector/vector/)를 사용하지 않는 이유는 무엇입니까? – geoalgo
나는 포인터와 매개 변수 전달에 대한 지식이없는 C++를 사용하려고한다. 코드를 작성하기 전에 이들을 배워야합니다. –