gpt4 book ai didi

XCode 4.6 clang 分析器担心空 C++ 指针不能为空

转载 作者:行者123 更新时间:2023-12-01 00:28:08 25 4
gpt4 key购买 nike

为 XCode 4.6 和新的 clang 编译器运行分析器,我看到了很多警告

Called C++ object pointer is null

即使是像这样的 protected 表达式

- (BOOL) validate: (Node*) node
{
if (!self.hypertext) return YES;
return self.hypertext->HasNode(node);
}

1) 我怎样才能让静态分析器相信这是被妥善保护的?2) 在某些情况下,我可能想断言 指针不会为空。怎么办?

最佳答案

这里的问题是您没有使用指针,而是使用 ObjC 调用的结果。

虽然不太可能,但分析器会看到以下情况:第一次调用返回的指针不为空,因此测试通过,第二次调用返回的指针为空。

你应该可以用一个局部变量来解决这个问题。

- (BOOL) validate: (Node*) node
{
YourType ht = [self hypertext];
if (!ht) return YES;
return ht->HasNode(node);
}

关于XCode 4.6 clang 分析器担心空 C++ 指针不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780043/

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