gpt4 book ai didi

C 数组 malloc 未知大小

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

在处理输入文件之前,如何在不知道有多少字符串的情况下创建唯一字符串数组?最多可以有 200 万个字符串,最大长度为 50。我的程序是这样的。这适用于 51 个项目,然后覆盖其他数据。如果可能的话,我不知道如何向数组添加元素。

main() {

char *DB_NAMES[51]; // i thought this gave me ptrs to chunks of 51
// but it's 51 pointers!
char *word;

while not eof {
...function to read big string
...function to separate big sting into words
...
processWord(ctr, DB_NAMES, word);
...
}
}

processWord(int ndx, char *array1[], char *word){

...function to find if word already exists...

//if word is new, store in array
array1[ndx]= (char *)malloc(sizeof(51)); // isn't this giving me a char[51]?
strcpy(array1[ndx],word);
...
}

最佳答案

您可以首先使用以下逻辑获取文件中的单词数,当获取文件中的单词数时,您可以使用单词数初始化数组大小。

#include<stdio.h>
#define FILE_READ "file.txt"

int main()

{
FILE * filp;
int count = 1;
char c;
filp = fopen(FILE_READ, "r");
if(filp == NULL)
printf("file not found\n");
while((c = fgetc(filp)) != EOF) {
if(c == ' ')
count++;
}
printf("worrds = %d\n", count);
return 0;
}

问候,亚尼夫克斯

关于C 数组 malloc 未知大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24902729/

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