2529번 - 부등호
8번째줄처럼 char sign[20]; 형태로 써주면 올바르게 작동하는데, 9번째줄처럼 vector <char> sign(k); 형태로 써주면 out of bound 오류가 발생하네요. 이유를 알려주세요 ㅠ
9번째 줄이 실행될 때에는 k = 0 이므로 sign 의 길이는 0입니다.
컴파일할 때 main함수부터 시작하고, k값을 가장 먼저 입력하니까 sign의 길이 또한 k로 되는 것 아닌가요..?
아니오, 컴파일 시점에 이미 k가 전역변수라서 0으로 초기화되고 이에 따라 sign의 길이도 0이 됩니다.
9번째 줄과 같은 전역변수 초기화는 main 함수가 실행되기 *전에* 실행됩니다.
댓글을 작성하려면 로그인해야 합니다.
vansoft 2년 전 1
8번째줄처럼 char sign[20]; 형태로 써주면 올바르게 작동하는데, 9번째줄처럼 vector <char> sign(k); 형태로 써주면 out of bound 오류가 발생하네요. 이유를 알려주세요 ㅠ