먼저 float bi[seq] = { 0, };과 같은 코드는 Undefined behavior입니다. C++ 표준에서는 배열의 크기를 컴파일 타임에 결정합니다. 즉, 배열 크기에 변수가 들어갈 수 없습니다. 하지만 C++이 아닌 C언어는 C99부터 float bi[seq]; 과 같은 "선언"은 허용하도록 했는데요(그럼에도 지원하지 않는 IDE도 있음), 이에 따라 C++의 몇몇 컴파일러에서도 옵션을 통해 부분적으로 허용하고 있습니다. 이처럼 C++에서는 배열 크기에 변수가 들어가는 것조차 제한적인데 동시에 초기화까지는 이어질 수 없습니다. 따라서 애초에 넉넉한 크기 만큼의 배열을 선언 or 동적할당을 해주시거나, 이럴 때 유용한 STL 컨테이너(vector같은)를 이용하는 것이 바람직합니다. 그리고 26줄의 코드와 같이 배열 전체를 초기화 하는 것은 최초 선언할 때만 가능합니다.
amj0215 1년 전
혼자하다가 계속 런타임 오류, 컴파일 에러, 메모리 초과 뜨다가 드디어 틀렸습니다로 나왔는데
계속 고쳐도 어디서부터 문제인지 모르겠어요..
애초에 접근 방법부터가 틀린것 같기도 하고..