gpt4 book ai didi

c - 在 BST 中如何将数组保留为值?

转载 作者:行者123 更新时间:2023-11-30 14:47:52 25 4
gpt4 key购买 nike

我正在读取一个文件,其中该行中出现的第一个单词是我想要作为键的单词。
换句话说,我想将它们保存在 chars(char* array[]) 的数组中。

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

我怎样才能做到这一点?

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;

最佳答案

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

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

关于c - 在 BST 中如何将数组保留为值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50930147/

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