Я очень плохо знаком с C и с трудом возвратил указатель на двумерный массив.
Цель кода - перейти в папку с именем rules.Из этой папки он находит все пути к файлам для всех файлов в папке правил.Я хочу заполнить двухмерный массив полными путями к файлам.На данный момент мой код способен заполнять двухмерный массив с помощью filepaths (это делается в методе listFiles).Я хотел бы использовать этот двумерный массив в методе main, чтобы сделать кое-что еще.Но у меня возникают проблемы при попытке вернуть его без проблем с компиляцией.
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#ifdef WINDOWS
#include <direct.h>
#define GetCurrentDir _getcwd
#else
#include <unistd.h>
#define GetCurrentDir getcwd
#endif
#include <string.h>
void listFiles(char *path);
int main() {
// Directory path to list files
char path[100];
char buff[FILENAME_MAX];
GetCurrentDir(buff, FILENAME_MAX);
// printf("%s\n",buff);
char toRuleFolder[100] = "/rules";
strcat(buff, toRuleFolder);
// printf("%s\n",buff);
listFiles(buff);
return 0;
}
void listFiles(char *path) {
char pathToUse[100];
struct dirent *dp;
char *arrayOfArraysOfChars[30][50]; // array to hold multiple single
// arrays of characters
DIR *dir = opendir(path);
printf(" %s\n", path);
return;
char *token;
const char s[2] = "-";
int counter = 0;
char pathToSave[100];
while ((dp = readdir(dir)) != NULL) {
token = strtok(dp->d_name, "");
while (token != NULL) {
if (strcmp(token, ".") != 0) {
if (strcmp(token, "..") != 0) {
strcpy(pathToSave, "");
strcpy(pathToSave, path);
strcat(pathToSave, "/");
strcat(pathToSave, token);
strcpy(arrayOfArraysOfChars[counter], pathToSave);
counter += 1;
}
}
token = strtok(NULL, s);
}
}
printf("%s\n", "sdasdasdssad");
printf("%s\n", arrayOfArraysOfChars[0]);
printf("%s\n", arrayOfArraysOfChars[1]);
printf("%s\n", arrayOfArraysOfChars[2]);
printf("%s\n", arrayOfArraysOfChars[3]);
closedir(dir);
}
arrayOfArraysOfChars заполняется необходимой мне информацией.Но я хотел бы иметь возможность получить доступ к этому массиву из основной функции.Как бы я это сделал?