태그가 C++이므로 std::vector의 사용을 제안하고 싶습니다. 매우 유용한 동적 컨테이너입니다. 크기를 조정할 수 있으며 쉽게 채울 수 있습니다. 일단 기본 사용법을 이해하면, 미래의 C++ 개발에 정말로 편리 할 것입니다. 나는 수정 약간 코드 :
#include <iostream>
#include <vector>
using namespace std;
void read(vector<vector<int> >& arr,int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>arr[i][j];
}
int main()
{
int N;
cin>>N;
vector<vector<int> > arr(N, vector<int>(N));
read(arr, N);
}
그들은 쉽게 초기화 할 수 있습니다처럼 그들은 원시적 배열에 비해 많은 장점을 가지고, 당신은 제로로 모두 초기화한다고 가정 :
vector<vector<int> > arr(N, vector<int>(N, 0));
당신은 필요 없어 함수를 전달할 때마다 배열 크기를 추가하는 것에 대해 걱정하십시오. 벡터 쉽게 처리 할 수 있습니다 :
for(i = 0; i < arr.size(); i++) {
for(j = 0; j < arr[i].size(); j++) {
// do stuff
}
}
을 또한 fill
, swap
같은 표준 템플릿 라이브러리의 추가 방법과. 많은 작업을 쉽게 처리 할 수 있습니다.
int int [n] [n];은 표준 C++가 아닌 VLA입니다. – Jarod42
매개 변수를 전환해야합니다. 'int [n] '이라고 쓰면, 배열 크기의 값을 사용할 수있다 : void read (int n, int a []]' – mch
'a [] []'의 충돌 선언이있다. –