gpt4 book ai didi

c - 使用 malloc 从函数返回数组

转载 作者:行者123 更新时间:2023-11-30 21:03:20 24 4
gpt4 key购买 nike

我正在尝试逐行阅读文本,在查看了一些示例后,我决定使用 malloc方法,但是我不断收到错误

error: subscript of pointer to function type
'void *(unsigned long)'"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *readFile(char filename[])
{
char line[100];
char *list = malloc(100); //causes error...
int i = 0;

FILE *file = fopen(filename, "r");

while (fgets (line, sizeof line, file)!= NULL)
{
list[i] = line;
i++;
}
return list;
}

int main(int argc, char *argv[])
{
char *p = readFile(argv[1]);
for (int i = 0; i<10; i++)
{
printf("%s", list[i]);
}
return 0;
}

基本上,我有一个任务来检查一个有 4 列的文本文件,我试图将每一行存储到一个数组中,然后使用 strtok将每一行分成 4 个标记。然后我将每个标记存储到一个单独的数组中(以便每一列都是一个数组)。然后我将遍历每个数组并执行所需的操作。然而,我真的被困在这一步了。

最佳答案

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char **readFile(char filename[]){
char line[100];
char **list = malloc(100*sizeof(char*));//for 100 lines
int i = 0;

FILE *file = fopen(filename, "r");

while (fgets (line, sizeof line, file)!= NULL && i < 100){
list[i] = malloc(strlen(line) + 1);
strcpy(list[i], line);
++i;
}
fclose(file);
return list;
}

int main(int argc, char *argv[]){
char **list = readFile(argv[1]);
for (int i = 0; i<10; i++){
printf("%s", list[i]);
}
//deallcate list[i], list
return 0;
}

关于c - 使用 malloc 从函数返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25699915/

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