MST

星途 面试题库

面试题:C语言中NULL指针的基础应用

在C语言中,假设你有一个函数`void processData(int *ptr)`,它用于处理`int`类型的数据指针。请编写代码实现一个场景,在这个场景中会用到NULL指针传递给`processData`函数,并描述在这个函数内部应如何安全地处理传入的NULL指针以避免程序崩溃。
39.1万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试

代码实现

#include <stdio.h>

void processData(int *ptr) {
    if (ptr == NULL) {
        printf("接收到NULL指针,进行安全处理,不执行数据处理操作\n");
        return;
    }
    // 处理数据的逻辑
    printf("处理数据: %d\n", *ptr);
}

int main() {
    int num = 10;
    int *validPtr = &num;
    int *nullPtr = NULL;

    // 使用有效指针调用函数
    processData(validPtr);

    // 使用NULL指针调用函数
    processData(nullPtr);

    return 0;
}

函数内部安全处理

processData函数内部,首先需要检查传入的指针是否为NULL。可以使用条件语句if (ptr == NULL)进行判断。如果指针为NULL,函数应该避免对指针进行解引用操作,因为这会导致程序崩溃。此时,可以选择打印一条错误信息,或者执行其他合适的错误处理逻辑,比如直接返回,以确保程序的安全性和稳定性。如果指针不为NULL,则可以正常执行对数据的处理逻辑。