создайте массив указателей на файлы

Как я пошел бы о создании массива указателей файла в C?
Я хотел бы создать массив указателей файла на аргументы основного... как a1.txt, a2.txt, и т.д. Таким образом, я буду работать ./prog arg1.txt arg2.txt arg3.txtчтобы иметь программу используют эти файлы.
Затем аргумент в пользу основного char **argv

От argv я хотел бы создать массив указателей файлов/файла. Это - то, что я имею до сих пор.

FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
    inputFiles[i] = fopen(argv[i], "r");
5
задан bernie 11 February 2010 в 07:35
поделиться

2 ответа

Код в порядке, но не забудьте компилировать на C99.

Если вы не используете C99, вам нужно создать массив в куче, например:

FILE** inputFiles = malloc(sizeof(FILE*) * (argc-1));

// operations...

free(inputFiles);
7
ответ дан 14 December 2019 в 04:37
поделиться
#include <stdio.h>`

int main(int argc, char **argv)
{
FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
{
    printf("%s\n",argv[i]);
    inputFiles[i] = fopen(argv[i], "r");
    printf("%p\n",inputFiles[i]);
}
  return 0;
}

Он печатает разные указатели для каждого указателя файла вместе с именами. Разрешение ОС правильно закрывать файлы:)

1
ответ дан 14 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: