首页 > 解决方案 > 带有 char 数组的数组

问题描述

我想创建一个数组,malloc然后为数组的字段分配fgets.

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

由于我猜缺少指针,这将不起作用。我能做些什么?

标签: carrayscharfgets

解决方案


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

一种方法是,使用下面的 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;

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


推荐阅读