언어/C++
[C++] 오류 : E0146) 이니셜라이저 값이 너무 많습니다.
study_memo
2024. 7. 15. 22:22
<고치기 전 코드>
#include <iostream>
using namespace std;
int func2(int arr[], int N)
{
for (int i = 0; i < N; i++)
{
for (int j = i + 1; j < N; j++)
{
if (arr[i] + arr[j]==100)
{
return 1;
}
}
}
return 0;
}
int main(void) {
func2({ 1, 52, 48}, 3);
}
-> func2({1, 52, 48}, 3); 부분에서 오류 발생
이유: C++ 에서는 배열을 함수의 매개변수로 전달할 때 배열을 직접 초기화할 수 없다.
대신 배열을 매개변수로 전달하기 전, 미리 선언하고 초기화한 다음, 그 배열을 함수에 전달해야 한다.
<고친 코드>
#include <iostream>
using namespace std;
int func2(int arr[], int N)
{
for (int i = 0; i < N; i++)
{
for (int j = i + 1; j < N; j++)
{
if (arr[i] + arr[j] == 100)
{
return 1;
}
}
}
return 0;
}
int main(void) {
int arr[] = { 1, 52, 48 };
func2(arr, 3);
}