inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C++ 프로그래밍 과제 수행 중 Indirection requires pointer operand ('double' invalid) 오류 발생

550

1510 원준혁

작성한 질문수 1

1

스크린샷 2023-05-27 오후 7.56.46.png제가 작성한 코드인데 왜 이런 오류가 뜨는지 모르겠습니다..

함수 전문 첨부합니다. 아래의 두 변수 total_emission_car, total_cost_car은 전역변수로 선언했고, carbon_emision_truck과 fuel_efficiency_truck은 #define을 활용해 정의했습니다.

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

코드를 보면 오류 발생 이유가 명확히 나와있습니다.
carbon_emision_truckfuel_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;
}

volatile에 대해 질문 있습니다.

2

37

2

환경설정 문

2

29

2

맥유저 입장의 고려해주세요

2

90

1

실행과정 질문입니다.

2

37

1