gpt4 book ai didi

c - 带有 char 数组的数组

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

我想使用 malloc 创建一个数组,然后为该数组的字段分配 fgets 的输出。

char *words;
words = (char *)malloc(lines*sizeof(char));
int k = 0;
words[k] = (char *)malloc(mysize*sizeof(char));

这不会工作,因为我猜缺少指针。我能做什么?

最佳答案

我想使用 malloc 创建一个数组,然后将 fgets 的输出分配给该数组的字段。 ? 那么希望你应该将 words 声明为双指针或 char 指针数组。

一种方法是使用字符指针数组,如下所示。

char *words[lines]; /* array of pointer, lines is nothing but number of line in file */
for(int row = 0;row < lines; row++) {
/* allocate memory for each line */
words[row] = malloc(mysize);/* mysize is nothing but lines has max no of char i.e max no of char */
/* now read from file */
fgets(word[row],mysize,fp);/* reading from file(fp) & store into word[0],word[1] etc */
}

或者您也可以使用双指针,例如 char **words;

一旦工作完成,最后不要忘记释放动态分配的内存。

关于c - 带有 char 数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50290241/

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