gpt4 book ai didi

c - 有没有更简单的方法将结构转换为指向结构的指针

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:43 25 4
gpt4 key购买 nike

我编写了一个单元测试程序,用于在初始编译之前捕获开源项目功能中的错误。我需要测试的所有函数都返回一个指向结构的指针(在本例中为 bn_poly),而我的变量不是指针。我知道必须有一个更简单的解决方案来解决这个问题,但经过一番谷歌搜索后我一无所获,这就是我目前正在做的事情

/* only relevant part of code */
struct *bn_poly poly_summ;
unsigned i
poly_summ = (struct bn_poly*)bu_malloc(sizeof(struct bn_poly),"sum");
/* test multiplication and begin checking data */
*poly_summ = bn_poly_mul(&poly_summ,poly_eqn,poly_mul);
/* bn_poly returns a pointer to bn_poly, so i have to declare
* a temporary pointer to find the value. Is this the only way
* or is there a type cast method i am missing?
*/

我希望能够做什么:

struct bn_poly poly_summ;
poly_summ = (somethingToConvertReturnVal)bn_poly_mul(&poly_summ,poly_eqn,poly_mul);
/* no memory allocation needed! */

最佳答案

我对你的问题有点困惑但这是我对“类型转换”指针的了解。

  • & 符号是引用符号,因此 &x 为您提供 x 的地址,或指向 x 的指针

    <
  • * 符号是引用符号,所以假设 x 是一个指针,*x 给你值 x 指向

在你的情况下,我想你想要

struct bn_poly poly_summ;
poly_summ = *(bn_poly_mul(/*params*/));

作为附加说明,从外观上看,bn_poly_mul 看起来已经分配了您的结构并将其放在堆上。你甚至不需要分配它,事实上这样做会导致内存泄漏


此外,bn_poly_mul 的第一个参数是 &poly_summ 这让我有点反感,所以我必须查看函数才能知道当然

关于c - 有没有更简单的方法将结构转换为指向结构的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14000143/

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