gpt4 book ai didi

C 警告,lcrypto lib。从整数生成指针而不进行强制转换和其他

转载 作者:行者123 更新时间:2023-11-30 16:52:37 26 4
gpt4 key购买 nike

我已经完成了搜索,看到很多关于不带强制转换的指针的警告的问题得到了解决,但之后我无法解决我的问题,而且我仍然无法理解我的警告。

所以这是我代码的一部分:

    RSA *rsa_private;
.
more code
.
rsa_private = PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL, NULL);

这里我有以下警告:

warning: assignment makes pointer from integer without a cast [enabled by default]

然后我尝试像这样解决我的问题:

rsa_private = (RSA*) PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL, NULL)

(尝试解决这样的问题,因为 te 函数如下所示:RSA *PEM_read_bio_RSAPrivateKey 并且当它返回 RSA * 时,我尝试对其进行强制转换)

然后我的警告开始是:从不同大小的整数转换为指针[-Wint-to-pointer-cast]

好吧,我的观点是,为什么我收到第一个警告? rsa_private是一个RSA *,函数返回一个RSA *,不是同一个类型吗?那么当我进行该转换时,为什么我也会收到该警告? (以前没见过)

我应该如何纠正我的警告?

最佳答案

正如我们从评论中看到的那样,添加强制转换并不是警告的正确解决方案。

我的编译器认为 PEM_read_bio_RSAPrivateKey返回一个 int (正如评论中正确所述),所以错误是我的程序缺少 #include <openssl/pem.h> ,现在编译器知道该函数返回 RSA *rsa_private也是RSA *不再出现警告。

关于C 警告,lcrypto lib。从整数生成指针而不进行强制转换和其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41154926/

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