gpt4 book ai didi

c - 将指针作为参数传递时的通常结果

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

我已经实现了一个 HashMap 。 结构 hashmap_elmnts { 字符 *键;
正在使用中; 无效*数据;//包含下面定义的struct ussd malloc的地址 };

         struct hashmap_map
{
int table_sizel;
int size;
struct hashmap_elmnts *element ;
};

现在,我有另一个结构 USSD

         typedef struct ussd { char menu;
int8_t did;
int8_t invokeid;
char *language;
char *msisdn;
char *ussd_string;
} USSD;

现在,在插入 HASHMAP 时,

USSD *init = (USSD*)malloc(sizeof(USSD));
init->msisdn = (char*)malloc(sizeof(char));
init->language = (char*)malloc(sizeof(char));
init->ussd_string = (char*)malloc(sizeof(char));
msisdn = language = ussd_string = NULL;

然后,我分配一些值,然后插入 HashMap 中

但是,在取回信息时,我遇到了一些问题:

在文件 GET.c 中

我调用一个函数

           USSD *pointer = NULL;     
res = hashget(key, pointer);
if (pointer == NULL)
printf ("pointer fail\n");
else
printf ("pointer pass\n");

在文件 HASHGET.c 中

    int hashget(int key, USSD_STRUCT *arg)
{
/** declaring a hashmap_map pointer **/
struct hashmap_map *m;

现在,经过各种计算 -> 我找到了 'curr' 的值

           arg = (m->element[curr].data);

if (arg == NULL)
printf("fail\n");
else
printf ("pass\n"):
return 1;
}

输出如下:经过指针失败

这怎么可能,当 arg != NULL 但指针仍然为 NULL 时。正如我所料,arg 的任何赋值也会反射(reflect)在指针中。

谁能告诉我可能出了什么问题。由于代码太大,我无法分享整个代码片段。

最佳答案

在您的第一段代码中,您说的是if assign null to pointer 而不是if pointer equals null

关于c - 将指针作为参数传递时的通常结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088143/

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