인프런 커뮤니티 질문&답변

롤로노이님의 프로필 이미지
롤로노이

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

함수 포인터 #1

글로벌 선언? 전역선언? 을 하니까 함수 포인터의 fn 까지는 잘 되는데 그이후가 안되네요

작성

·

163

0

int sub(int a, int b)

{

return  a + b;

}

 

 

typedef int(Fanc_sub)(int, int);

Fanc_sub* fn;

fn = sub;

int main()

{

int c = fn(1, 2);

cout << c << endl;

return 0;

}

 

mine 실행부분 안쪽에 넣어놓지 않고 그 외부에 선언을 하니까 저 빨간부분이 작동을 하지 않는데 왜 그러는걸까요 ㅠㅠ 느낌상 메인함수안에서 무언가가 작동해야 되는데 스택 메모리 관련된 부분인가요? 

 

딱 저부분에만 빨간줄이 처지고  형식 지정지가  없다고 나옵니다

 

뭣때문에 저부분에서는 안되는걸까요 ㅠㅠ

답변 2

0

롤로노이님의 프로필 이미지
롤로노이
질문자

실행이 되야 되는거였는게 키포인트였군요 감사합니다 뭔가 이상해서 한참고민했었네요

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

'선언'만 하는 것이 아니라, 진짜 무엇인가 '실행되는' 코드는
함수 내부에 넣어놔야 실행됩니다.

Fanc_sub* fn = sub;

이렇게 선언과 동시에 초기화하는 특수 문법 상황이 아니라면,
fn = sub 는 fn에다가 sub를 대입하는 것이니
main이든 다른 함수이든 어딘가에 넣어놔야 합니다.

롤로노이님의 프로필 이미지
롤로노이

작성한 질문수

질문하기