인프런 커뮤니티 질문&답변
C++ 프로그래밍 과제 수행 중 Indirection requires pointer operand ('double' invalid) 오류 발생
작성
·
544
1
제가 작성한 코드인데 왜 이런 오류가 뜨는지 모르겠습니다..
함수 전문 첨부합니다. 아래의 두 변수 total_emission_car, total_cost_car은 전역변수로 선언했고, carbon_emision_truck과 fuel_efficiency_truck은 #define을 활용해 정의했습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
코드를 보면 오류 발생 이유가 명확히 나와있습니다.
carbon_emision_truck와 fuel_efficiency_truck는 둘 다 매크로로 정의된 상수입니다. 하지만 calculate_carbon_footprint() 함수 내부에서 이 변수들이 상수임을 인식하지 못하고, 인자로 double 자료형을 받은 후 * 연산자를 사용하고 있기 때문에 발생하는 오류인 것 같습니다.
해결책으로는 calculate_carbon_footprint() 함수의 인자를 double 자료형 대신 const double&로 수정해주시면 됩니다. 이렇게 하면 인자로 상수값을 받아올 수 있고 * 연산자도 사용할 수 있습니다.
함수 전문:
double calculate_carbon_footprint(double miles_driven_car, const double& fuel_efficiency_car)
{
double carbon_emission_car;
carbon_emission_car = (miles_driven_car / fuel_efficiency_car) * carbon_emision_truck * 19.64;
return carbon_emission_car;
}




