scanf_s 식별자가 필요하데요

조회수 505회
#include <stdio.h>

void get_sum_diff(int x, int y, int* p_sum, int* p_diff);

int main(void)
{
    int x;
    int y;
    int r, s;

    printf("정수를 입력하세요 : ");
    scanf_s("%d %d", &x, &y); 

    void get_sum_diff(x, y, &r, &s);

    printf("원소들의 합 = %d", r);
    printf("원소들의 차 = %d", s);

    return 0;
}

void get_sum_diff(int x, int y, int* p_sum, int* p_diff)
{
    *p_sum = x + y;
    *p_diff = x - y;
}

포인터를 매개변수로 하는 함수를 만들어서 원소들의 합과 차를 내놓도록 하는 프로그램입니다.

main함수에서 get_sum_diff함수를 실행하려고 하는데, &r, &s에 빨간줄이 그이더니 식별자가 필요하다고 하네요, 어디서 잘못된걸까요?

  • scanf 와 scanf_s 는 달라요 김호원 2021.7.19 13:23

1 답변

  • scanf_s에서 문제가 발생한 것이 아니고, 아래 코드가 문제입니다.

    void get_sum_diff(x, y, &r, &s);
    

    함수를 사용(호출)할 때에는 아래와 같이 void 없이 사용해야 합니다. void와 같은 반환값의 표기는 함수를 선언하거나 정의할때만 붙이고, 함수를 호출할 때는 붙이지 않습니다.

    get_sum_diff(x, y, &r, &s);
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)