gpt4 book ai didi

c++ - 我可以在 C++ 方法中返回 NULL 指针吗?

转载 作者:太空狗 更新时间:2023-10-29 23:24:36 25 4
gpt4 key购买 nike

在我的代码中,我使用方法 getNumberOfP_ForAdd()。此方法打开一个文件并返回一个 XMLDocumentWrapper*。

XMLDocumentWrapper* Tab::getNumberOfP_ForAdd()
{
QString defaultName = GuiUtil::getLastPath();
QString fileName = QFileDialog::getOpenFileName(this, "Open " + displayName + " File",
defaultName, displayName + " Files (*." + fileSuffix + ")", 0, 0);

if (fileName.isNull() || fileName.isEmpty()) {
qDebug() << "Load" << displayName << "aborted.";
return NULL;
}

GuiUtil::setLastPath(fileName);

// Open file
XMLDocumentWrapper* inputDoc = XMLDocumentWrapper::readFromFile(fileName);
if (inputDoc == NULL) {
qDebug() << "Load" << displayName << "aborted.";
return NULL ;
}

return inputDoc;
}

当我尝试读取文件时,我首先检查两件事:天气

(fileName.isNull() || fileName.isEmpty())

(inputDoc == NULL)

如果这些说法是真的,我愿意

return NULL;

我可以简单地返回一个 NULL-Ptr 吗?否则我会遇到问题吗?我是否必须再次释放该指针?

最佳答案

  1. 如果函数的返回类型是指针,则可以返回空指针。

  2. 如果调用方检查返回值并处理返回值为 null 的情况 - 那么应该没有任何问题。如果调用者试图取消引用此指针,则会出现问题。

  3. 函数返回指针的事实并不一定意味着开发人员需要释放内存。指针可以指向任何东西,包括堆栈和全局变量。开发人员应该查看函数的文档以确定如何处理返回值。无论如何,删除空指针没有问题,但是同样,应该首先查看她/他是否需要释放某些东西。

关于c++ - 我可以在 C++ 方法中返回 NULL 指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33232012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com