2차원 배열 초기화 질문입니다
1395
投稿した質問数 6
안녕하세요 선생님 강의 잘 듣고 있습니다!
다름이 아니라 위 사진과 같이
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;
}
回答 2
1
안녕하세요^^
C++동적 배열 할당은 포인터와 new 연산자를 쓰거나 벡테로 해야 합니다.
int a[n] = {0,}; 이런 방식은 하면 안되는 방식입니다.
0
아하 답변 감사합니다!
줄곧 int a[n] = {0,}; 이렇게 써왔는데, 이 방식이 왜 안되는건지 여쭤봐도 될까요??
(* 어떤 컴퓨터에서는 안된다거나,, 메모리 할당에 어떤 문제가 있다거나 하는 이유요..!!
그냥 궁금해서 여쭤봅니다!!!)
0
안녕하세요! 저도 잘 알고있는게 아니라 조심스럽지만, 제가 알기로 할당을 할 때 코드를 읽는 순서가 오른쪽 <- 왼쪽이라고 알고 있습니다!
컴파일시 int a[n] = { 0, };으로 초기화 할 때 n을 알 수 없어서(n은 런타임에 들어오는 값이니) 생기는 문제같습니다. 선생님께서 말씀하신대로 new 연산자를 이용한 동적 할당이나 벡터를 이용해서 해결하면 될 것 같습니다!
혹은 int a[n];으로 나누면 개별 값에 접근과 할당이 가능합니다.
a[인덱스] = 할당하고자하는 값;
초기화를 원할 경우fill(a, a+n, 초기화 원하는 값)으로 할 수 있습니다!
dldldksl님께서 n을 입력받은 후 int a[n] = { 0, }이 가능했다고 하셨는데, n 값을 입력받는게 아니라 다른 함수에서 파라미터로 n을 넘겨받는 경우는 아니었을까 조심스럽게 예측해봅니다. (저도 비슷한 고민을 한 적이 있었어서요...!) 말씀하신 방식으로 실행이 되었던 코드가 있으시다면 더 자세히 알 수 있을 것 같아요!
(틀린 부분 있으면 수정 부탁드리겠습니다..!)
테스트 케이스 질문
0
373
1
병합정렬 시간복잡도 질문
0
462
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1345
2
질문드립니다.
0
376
1
질문드립니다!
0
430
1
dev 프로그램 질문
0
275
1
문제가 이해가 안되요
0
376
1
4번 나이차이 문제 접근법 질문 드립니다.
0
307
1
source file not compiled
0
1047
3
59번 질문드립니다.
0
372
1
25번 문제 질문
0
349
1
4. 나이차이 문제 질문입니다.
0
372
1
90번 라이언 킹 심바 1번 테스트 케이스
0
470
1
71번 문제 전역 변수 질문 있습니다
0
365
1
75번, 79번 priority_queue관련
1
356
1
75.최대 수입 스케줄
0
400
2
복면산 정답의 수
0
431
1
테스트 케이스에 대해서
0
445
1
수업 내용 질문입니다!
1
232
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
822
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
255
1
다른 풀이 방식
0
317
1
크루스칼 vs 프림
0
306
1
숫자 총개수 small 질문있습니다.
0
243
1

