#include
#include
#include
enum Active
{
EXIT = 0,
SCAN_DATA,
PRINT_DATA,
ANALIZE_DATA
};
int scan_data(char**, int, int*);
int main()
{
setlocale(0, "Russian");
char main_flag = 'y';
int do_next = 0;
int len_array = 1;
char symbol;
int len_str = 0;
int inspect = 0;
int count_items = 0;
char** pcharArray = NULL;
int* pintArray_counter = NULL;
char* pcharArray_counter = NULL;
int* plen_strs = NULL;
while (main_flag == 'y')
{
printf("Введите номер действия: \n0 - Выход; \n1 - Считывание данных с файла; \n");
printf("2 - Печать данных из файла; \n3 - Анализ данных из файла; \n");
if (!scanf("%d", &do_next))
{
fflush(stdin);
printf("Введите число от 0 до 4.\n");
continue;
}
switch (do_next)
{
case EXIT:
printf("Программа завершена. Спасибо за сеанс! \n");
main_flag = 'n';
// очистка памяти массива
break;
case SCAN_DATA:
len_array = scan_data(pcharArray, len_array, plen_strs);
break;
case PRINT_DATA:
//потом напишу
case ANALIZE_DATA:
//потом напишу
break;
default:
printf("Введите корректное значение. Введено %d.\n", do_next);
break;
}
}
}
int scan_data(char** pcharArray, int len_array, int* plen_strs)
{
FILE* file;
int count_lines = 1;
int len_str = 0;
char symbol = NULL;
file = fopen("E:/YandexDisk/IKIT/OP/Semester_2_C/lab_3/text.txt", "r");
//file = fopen("D:/YandexDisk/IKIT/OP/Semester_2_C/lab_3/text.txt", "r");
if (!file)
{
printf("Файл не найден.");
return 0;
}
printf("Файл найден. \n");
while ((symbol = fgetc(file)) != EOF)
{
if (symbol == '\n')
{
count_lines++;
}
}
len_array = count_lines;
plen_strs = (int*)calloc(count_lines, sizeof(int));
rewind(file);
count_lines = 0;
pcharArray = (char**)malloc(count_lines * sizeof(char*));
while ((symbol = fgetc(file)) != EOF)
{
if (symbol != '\n')
{
len_str++;
}
else
{
pcharArray[count_lines] = (char*)malloc(len_str * sizeof(char));
plen_strs[count_lines] = len_str;
len_str = 0;
count_lines++;
}
}
if (symbol == EOF)
{
pcharArray[count_lines] = (char*)malloc(len_str * sizeof(char));
plen_strs[count_lines] = len_str;
count_lines++;
}
rewind(file);
len_str = 0;
count_lines = 0;
while ((symbol = fgetc(file)) != EOF)
{
if (symbol != '\n')
{
pcharArray[count_lines][len_str] = symbol;
printf("%c - %c - %d - %d \n", pcharArray[count_lines][len_str], symbol, len_str, plen_strs[count_lines]);
len_str++;
}
else
{
count_lines++;
len_str = 0;
}
}
fclose(file);
printf("Пароли считаны. \n");
return len_array;
}
Ребят, помогите пожалуйста.
0xC0000005: нарушение прав доступа при записи по адресу 0x00636173