2차원 배열 초기화 질문입니다
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
안녕하세요 선생님 강의 잘 듣고 있습니다! 다름이 아니라 위 사진과 같이 scanf("%d", &n); int a[n+2][n+2] = {0,}; 2차원 배열을 초기화 하고 나서 컴파일 하니까, 첨부한 사진과 같은 Warning 메세지가 뜨면서 실행 시에는 입력을 하다 말기까지 하더라구요 ( * n=5로 입력 받을 경우, 원래는 25개의 숫자가 입력받아져야 하는데 6번만 입력받더라구요 ㅜㅜ) ( * 2차원 벡터로 바꿨을 때는 정상적으로 작동했습니다) 그동안 1차원 배열로 n을 입력받고 나서 int a[n] = {0,}; 이런 식으로는 잘 초기화 되고 할당이 되었는데, 2차원 배열의 경우는 이게 안되는 이유가 무엇인가요? (*동적 할당..? 과 관련있는 것인가요?) 위 사진과 같은 오류 메세지는 어떨 때 생기는 오류메세지일까요? ㅜㅜ ( * [Warning] array of array of runtime bound 라고 써져 있는 부분이요,,) * 아래는 코드 전문입니다. #include <stdio.h> #include <vector> using namespace std; int main(){ int n, bongwoori=0; scanf("%d", &n); // vector<vector<int>> a(n+2, vector<int>(n+2, 0)); int a[n+2][n+2] = {0,}; for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ scanf("%d", &a[i][j]); } } for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ if(a[i][j]>a[i-1][j] && a[i][j]>a[i+1][j] && a[i][j]>a[i][j-1] && a[i][j]>a[i][j+1]){ bongwoori++; } } } printf("%d", bongwoori); return 0; }
- 이차원배열
- 초기화
- C++
- 코테 준비 같이 해요!





