首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在BST中,如何将数组保存为值?

在BST中,如何将数组保存为值?
EN

Stack Overflow用户
提问于 2018-06-19 21:50:29
回答 1查看 43关注 0票数 0

我正在读取一个文件,其中行中出现的第一个单词是我想要作为关键字的那个单词。

换句话说,我想把它们保存在一个chars(char* array[])数组中。

我遇到的问题是,当键在文件的另一行中重复时,所以我想将其他单词添加到数组的下一个位置。

我该怎么做呢?

代码语言:javascript
运行
复制
FILE* file1 = fopen(name_file,"r");
if(!file1) return 1;

bst_t* bst = bst_create(strcmp,NULL);
if(!bst) return 1;

char* line = NULL;
size_t count = 0;
ssize_t read;

while((read = getline(&line,&count,file1)) > 0){
    char** arr_line = split(line,' ');
    char* key = arr_line[0];
    char* value = arr_line[1];

    if(!bst_find(bst,key)){
        char** values = malloc(sizeof(char*));
        values[0] = value;

        bst_insert(bst,key,&values);
    }
    else{
        ///?
    }

    free_strv(arr_line);
}

free(line);
fclose(file1);

return 0;
EN

回答 1

Stack Overflow用户

发布于 2018-06-19 22:18:49

您可以创建一个指针,每次添加到char*数组时都会递增,或者每次要添加更多字符串时,使用malloc创建一个新的字符串数组,并将所有内容复制到新数组中,同时将复制到所有新字符串中。

这实际上取决于您现有的代码以及它的行为方式。(否则我会说得更具体)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50930147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档