MST

星途 面试题库

面试题:C++ 中函数指针安全调用的基本方法

请简述在C++中,如何安全地调用函数指针。假设你有一个函数指针`void (*funcPtr)(int)`,且该指针可能为空,写出安全调用它的代码片段,并解释每一步的作用。
19.1万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
void (*funcPtr)(int) = nullptr; // 定义并初始化为空指针

if (funcPtr) { // 检查函数指针是否为空
    funcPtr(5); // 如果不为空,调用函数并传入参数5
}
  1. void (*funcPtr)(int) = nullptr;:定义一个函数指针funcPtr,它指向一个接受一个int参数且返回void的函数,并初始化为nullptr,表示当前不指向任何函数。
  2. if (funcPtr):检查函数指针funcPtr是否为空。如果不为空,即funcPtr指向了一个有效的函数,那么进入if块。
  3. funcPtr(5);:在if块内调用函数指针funcPtr,并传递参数5。这一步确保了只有在函数指针有效时才会调用函数,避免了空指针调用导致的未定义行为。