首页 > 解决方案 > 我需要一种方法来返回函数而不必返回“返回类型”

问题描述

我有一个分配内存然后返回指向该内存地址的指针的函数。我正在分配一个 char 数组,它们传递给函数的参数将是数组大小。现在的问题是,如果它们0作为要动态分配的大小的参数传递,那么我想退出/返回该函数,但函数本身返回 achar *所以我无法执行类似的操作return -1;,我将如何去围绕这个,同时保持功能和逻辑来分配内存?有办法吗?

char *alloate_memory(int x) { // This will assume you are allocating memory for a C-style string
    if (x == 0)
        return ;
    char *mem{ new char[x] };
    return mem;
}

标签: c++return

解决方案


指示指针未指向有效内存的正确方法是使用nullptr. 因此return,在内存分配失败的情况下,您的声明将只是:

return nullptr;

当然,函数的调用者需要确保返回的指针不是nullptr在他们尝试取消引用它之前。


推荐阅读