gpt4 book ai didi

C++:strchr() 上的指针分配警告

转载 作者:搜寻专家 更新时间:2023-10-31 00:04:43 27 4
gpt4 key购买 nike

我在以下代码中收到错误assignment makes pointer from integer without a cast,这是什么意思?

char * splitter;
if(splitter = strchr(key, ':') != NULL && *(splitter + 1) == ' ')

最佳答案

是因为操作的优先级。您需要放置一组额外的括号以确保它以正确的顺序发生:

char * splitter;
if((splitter = strchr(key, ':')) != NULL && *(splitter + 1) == ' ')

否则它将评估为:

splitter = (strchr(key, ':') != NULL)

由于 strchr(key, ':') != NULL 将评估为 10,在您的示例中,您正在将整数分配给指针类型,因此会出现警告。

但是,我会像您的第二个示例一样编写它,因为它更简单且不易出错。将其缩短一行除了增加复杂性外不会增加任何内容。

关于C++:strchr() 上的指针分配警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3646966/

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