声明一个指针并将重分配的结果分配给它,作为在C中有效的if参数吗?

问题描述 投票:0回答:1

我正在尝试实现Dijkstra算法,首先需要设计一个具有可变数量节点的图结构;为了做到这一点,我需要动态地更改结构数组的大小,并且我想知道是否编写此代码:

if( !(struct s *a = (struct s *)realloc(some_pointer_to_s_struct, new_size*sizeof(struct s))) ) {
    return -1; //because that means my pointer is NULL
}
//do something

在C中是正确的,因为根据此帖子:answer to a post on the subject是。

但是,当我尝试更改代码以匹配该模式时,出现很多error: expected ‘)’ before xxx和其他类似的错误...我以为也许一开始我忘了匹配括号或括号,但是我花了30分钟的时间检查我的代码,但这似乎不是问题。

c if-statement realloc
1个回答
1
投票

顺便说一句,您的代码也不是有效的C ++,因为它试图对声明使用否定符。

© www.soinside.com 2019 - 2024. All rights reserved.