main 메서드에서 참조로 선언 된 배열을 함수에 대한 매개 변수로 전달할 수 있습니까? 또한 컴파일러가 dimentions를 원하지만, 내가 변수를 줄 때, 컴파일러가 배열의 잘못된 정수 차원의 오류를 제공, 여기에 코드입니다 :C++의 함수 매개 변수로 참조로 배열 전달
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int scanV(int Row, int value, int M, int (&tableValues)[])
{
for (int i = 0; i <= M; ++i)
{
if (tableValues[Row - 1][i] == 1)
{
if (i + value <= M)
{
tableValues[Row][i+value] == 1;
}
if (i - value >= 0)
{
tableValues[Row][i-value] = 1;
}
}
}
}
int main()
{
int C, B, M;
cin>>C;
int integers[C];
for (int i = 1; i < C; ++i)
{
cin>>integers[i];
}
cin>>B;
cin>>M;
integers[0] = B;
int tableValues[C][M + 1];
tableValues[0][B] = 1;
for (int i = 1; i < C; ++i)
{
scanV(i, integers[i], M, tableValues);
}
return 0;
}
쉬운 :'벡터 & tableValues'는 매개 변수가 될 것입니다. –
chris
tableValues 매개 변수는 int 배열 배열이 아닌 int 배열에 대한 참조이므로 tableValues [x] [y]를 수행 할 수 없으며 int 배열 배열에 전달할 수도 없습니다. 코드에는 여러 가지 다른 문제가 있습니다. 예를 들어, C가 컴파일 타임 상수가 아니라면 "int integer [C]"를 수행 할 수 없습니다 (여기에는 분명히 없습니다). – abarnert
좋아,하지만 그것을 사용하면 "(tableValues [행 - 1] [i] == 1)"및 오류 "잘못된 형식 int [int] '배열에 대한 10 줄에 오류를 제공합니다 첨자 | 다른 줄에 더 많은 것 – user1113314