C语言中的返回结构指针

C语言中的返回结构指针,c,pointers,struct,C,Pointers,Struct,你能帮我修改一下密码吗 此函数返回指向结构项的指针: struct item* findItem(const char* key) { for (int i = 0; i < nItems; i++) { if (!strcmp(items[i].key, key)) { return &items[i]; } } return NULL; } 如何检索结构并将其保存以用于main函数?如果要从函数返回指针,则必须将其作为指针读取。 注意s

你能帮我修改一下密码吗

此函数返回指向结构项的指针:

struct item* findItem(const char* key) {
    for (int i = 0; i < nItems; i++) {
        if (!strcmp(items[i].key, key)) { return &items[i]; }
    }
    return NULL;
}

如何检索结构并将其保存以用于
main
函数?

如果要从函数返回指针,则必须将其作为指针读取。 注意
struct item*search\u items
部分在我的代码和你的(我添加了指针
*


若要从函数返回指针,则必须将其作为指针读取。 注意
struct item*search\u items
部分在我的代码和你的(我添加了指针
*



你面临什么问题?你可以更具体吗?请粘贴你的完整代码。除了下面的答案:考虑“代码”> ItValue会发生什么,如果<代码> FIDENTION/CODE >返回NULL。我不能发布代码,因为它是Socket编程任务的一部分,如果有人复制了相同的代码,我将得到零标记欢迎堆栈溢出。请注意,在这里说“谢谢”的首选方式是投票选出好的问题和有用的答案(一旦你有足够的声誉这么做),并接受对你提出的任何问题最有用的答案(这也会给你的声誉带来一点提升)。请看这页,还有你面临的问题是什么?你可以更具体吗?请粘贴你的完整代码。除了下面的答案:考虑“代码”> ItValue会发生什么,如果<代码> FIDENTION/CODE >返回NULL。我不能发布代码,因为它是Socket编程任务的一部分,如果有人复制了相同的代码,我将得到零标记欢迎堆栈溢出。请注意,在这里说“谢谢”的首选方式是投票选出好的问题和有用的答案(一旦你有足够的声誉这么做),并接受对你提出的任何问题最有用的答案(这也会给你的声誉带来一点提升)。请查看页面,是的,我也做了同样的事情,它工作了+我删除了&键和传递键。。它现在执行了,但是我总是从search_itemsWell中得到一个空值,你的字符串存在吗?代码已正确更正。现在取决于您是否显示更多代码,什么是
key
或类似的代码。我如何访问内存以检查结构是否正确存储?我不知道您到底想做什么,所以我没有答案。使用gdb调试器解决了我的问题。。很明显,我没有使用memcpy命令保存结构,我丢失了数据。是的,我做了同样的操作,它工作了+而且我只删除了&key和passkey。。它现在执行了,但是我总是从search_itemsWell中得到一个空值,你的字符串存在吗?代码已正确更正。现在取决于您是否显示更多代码,什么是
key
或类似的代码。我如何访问内存以检查结构是否正确存储?我不知道您到底想做什么,所以我没有答案。使用gdb调试器解决了我的问题。。很明显,我没有使用memcpy命令保存结构,并且丢失了数据。
struct item search_items = findItem(&key) ; // I have problem with this line 
char* itemValue;
if (search_items != NULL)
{
    itemValue = search_items->value;
}
struct item* search_items = findItem(&key) ; // i have problem with this line 
char* itemValue;
if ( search_items != NULL)
{
    itemValue = search_items->value;
}