배열 위치
400
작성한 질문수 10
int a[60], b[60]; 이것을
main() 함수에 집어넣으면 no 라고 나오고
ex)
int main() {
int a[70],b[70];
main()위에 전역함수?
ex)
int a[70],b[70];
int main(){
로 넣으면 yes로 나오는데 왜 그런건가요..
답변 2
0
선생님 답변 전에 알고 있는 거라도 말씀드리면..
말씀하신 두 개의 차이는 초기화 여부인 듯합니다.
main함수 위에 변수를 선언하게 되어버리면 전역변수가 되어서 0으로 초기화 됩니다.
그러나 main 함수 안에 변수를 선언하게 되면 지역변수가 되어서 초기화되지 않고 쓰레기값(설정치 않은 값)이 들어갈 수 있습니다.
이 차이 때문에 과정에서 오류가 발생한 것이 아닐까 합니다.
0
댓글 감사합니다 한가만 더 물어봐도 될까요?? 여태껏 main함수에서 변수 선언하는데 다 괜찮았는데 이것만 오류나서...
그럼 지역변수에서 초기화할려면 어떻게해야하나요??
0
이것도 제가 알고 있는 불완전한 지식으로만이라도 말씀드리면...
우선 말씀해주신 두 가지에 대해 말씀 드리겠습니다.
1) 이것만 오류가 났다
A. 아마도 다른 경우에는 우연하게도 해당 배열에 제대로된 값이 들어갔을 경우가 높습니다. 이 이상으로는 제가 알고 있는 지식으로 답변을 드릴 수가 없어 죄송합니다.
2) 지역변수에서 초기화하려면 어떻게 해야 하나?
A. 배열 선언과 동시에 초기화를 하시면 될 듯합니다.
예를 들자면, int a[70] = {0, };
이라고 초기화를 하시면 정수형 배열 a 는 모두 0으로 초기화 됩니다.
배열은 선언과 동시에 일괄적으로 할당할 수 있습니다. 다만 배열을 선언한 다음에는 위처럼 일괄할당을 적용하지 못하는 것으로 알고 있습니다.
또, 배열을 선언과 동시에 할당할 경우 int a[70] = {1, } ; 라고 하면 첫번째 배열의 요소에 1이 들어가고 나머지 지정치 않은 공간은 0으로 자동 초기화가 이뤄집니다.
테스트 케이스 질문
0
370
1
병합정렬 시간복잡도 질문
0
459
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1340
2
질문드립니다.
0
373
1
질문드립니다!
0
427
1
dev 프로그램 질문
0
272
1
문제가 이해가 안되요
0
372
1
4번 나이차이 문제 접근법 질문 드립니다.
0
304
1
source file not compiled
0
1032
3
59번 질문드립니다.
0
368
1
25번 문제 질문
0
345
1
4. 나이차이 문제 질문입니다.
0
365
1
90번 라이언 킹 심바 1번 테스트 케이스
0
466
1
71번 문제 전역 변수 질문 있습니다
0
355
1
75번, 79번 priority_queue관련
1
352
1
75.최대 수입 스케줄
0
394
2
복면산 정답의 수
0
427
1
테스트 케이스에 대해서
0
441
1
수업 내용 질문입니다!
1
227
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
814
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
249
1
다른 풀이 방식
0
313
1
크루스칼 vs 프림
0
303
1
숫자 총개수 small 질문있습니다.
0
233
1





