UNIT. 68.5 질문입니다.
, 박 태훈님이 작성답안이
int (*fp)(int *, int *) = NULL;
if (strcmp(funcName, "add") == 0)
fp = add;
else if (strcmp(funcName, "sub") == 0)
fp = sub;
else if (strcmp(funcName, "mul") == 0)
fp = mul;
else if (strcmp(funcName, "div") == 0)
fp = div;
이런식으로 하는거 같은데요.
처음에 함수 포인터를 생성할 때 NULL을 빼면
초기화되지 않았을 수 있는 로컬 포인터 변수라면서 오류가 발생하는데
앞에 설명하는 파트에는 이런식으로 초기화를 해줘야 된다는
얘기가 없더라고요. 원래 함수 포인터를 사용할 때
초기화를 해줘야 되는건가요?
Re: UNIT. 68.5 질문입니다.
, 도장_ 관리자님이 작성초기화를 하는 것은 좋은 습관입니다.
단, 함수 포인터를 초기화하지 않아도 리눅스 환경에서 컴파일에는 문제가 없습니다.
Visual Studio에서는 솔루션 탐색기에서 프로젝트를 우클릭해서 메뉴 중에 '속성'을 선택합니다.
구성 속성 > C/C++ > 일반에서 SDL 검사를 '아니요'로 선택합니다.
프로젝트를 생성할 때 SDL 검사를 선택해제하면 프로젝트를 생성할 때부터 SDL 검사를 제외할 수 있습니다.
Visual Studio가 업데이트되면서 코드 검사가 더 강화된 것으로 보입니다.