Это не удивительно. Это:
const char * vectorparch[50]; //array with 50 file paths
... определяет массив из 50 указателей, но не никакого пространства для любого из этих указателей для указания AT, поэтому у вас нет места для отдельных имен файлов. На основании вашего звонка на fread
:
fread ( vectorparch, sizeof ( char ), 50, parch );
Вы обрабатываете каждый элемент, как если бы он указывал на массив из 50 байтов. Это оставляет еще одну незначительную проблему: если ваши пути не имеют длину ровно 50 байтов (кажется несколько маловероятным), fread
не будет делать правильные вещи - он будет читать 50 байтов независимо от длины пути. , Я предполагаю, что более вероятно, что ваш файл имеет один путь на строку, но пути не обязательно имеют одинаковую длину. В этом случае я бы сделал что-то вроде этого:
char vectorparch[50][50]; // 50 arrays, 50 characters apiece.
for (j=0; j<50; j++) {
fgets(vectorparch[j], 50, parch);
propagar(vectorparch[j]);
}
Возможно, это не то, что вам нужно - вы, кажется, обрабатываете каждый путь к файлу, когда читаете его. Если это так, вы, вероятно, хотите что-то более похожее на:
char vectorparch[50]; // one array of 50 characters.
for (j=0; j<50; j++) {
fgets(vectorparch, 50, parch);
propagar(vectorparch);
}