У меня есть несколько файлов, которые я читаю в массиве char, я хотел бы сохранить содержимое, которое я прочитал из каждого файла, в массиве символов, чтобы я мог получить доступ к отдельные массивы символов (содержимое файла) по индексу, я не уверен в синтаксисе о том, как это сделать.Выделение массива указателей char
Я понимаю, что мне нужно установить каждый из адресов памяти в массиве паттернов на один адрес памяти для каждого массива символов; в массив символов, хранящийся в patternData, но я не знаю, как это установить. Каков синтаксис, который мне не хватает, что мне нужно, чтобы это произошло?
То, что я пытался
я бы подумал, что если я хранил тип char*
, то я должен был бы тип char**
для хранения отдельных массивов символьных массивов.
я получить доступ к char*
бы, используя следующие обозначения, чтобы установить адрес памяти индекса шаблона для
&patterns[INDEX] = &pData;
Однако это не работает. Существует множество аргументов «char pointer array», но я не уверен в правильном способе сделать это простое присвоение pData
индексу шаблонов.
char *tData;
int tLength;
char *pData;
int pLength;
char **patterns;
void ReadFromFile(FILE *f, char **data, int *length) //This is what is passed into function
int main(int argc, char **argv)
{
for (int i = 1; i <= 5; i++)
{
FILE *f;
char fileName[1000];
sprintf(fileName, "file%d.txt", i);
f = fopen(fileName, "r");
if (f == NULL)
return 0;
ReadFromFile(f, &pData, &pLength); //works to here, contents of file assigned to pData
fclose(f);
&patterns[i - 1] = &pData;
}
return 0;
}
Не следует ли читать 'patterns [i-1] = pData;'? – nlu