Привет. Я пытаюсь открыть текстовый файл и прочитать содержимое файла символ за символом, и мне нужно вычислить, сколько гласных в каждой строке. Я пытаюсь использовать 2d массив, используя указатель указателя. это ничего не возвращает. Выдает ошибку, программа перестала отвечать.
#include <stdlib.h>
#include <stdio.h>
#define input "input.txt"
int rows(const char*);
int** vowels(const char*);
int main()
{
int i,j;
int r = rows(input);
int **c=vowels(input);
for(i=0;i<r;i++)
{
for(j=0;j<5;j++)
printf("%d\t",c[i][j]);
printf("\n");
}
return 0;
}
int** vowels(const char* filename)
{
int **a;
int rows=0;
FILE* fp = fopen(filename, "r");
if (!fp)
{
printf("Error opening file\n");
exit(1);
}
char ch;
*(*(a+rows)+0)=0;*(*(a+rows)+1)=0;*(*(a+rows)+2)=0;*(*(a+rows)+3)=0;
while (1)
{
ch = getc(fp);
if (feof(fp))
{
break;
}
else if (ch == '\n')
{
rows++;
*(*(a+rows)+0)=0;*(*(a+rows)+1)=0;*(*(a+rows)+2)=0;*(*(a+rows)+3)=0;
}
else if (ch == 'a')
{
*(*(a+rows)+0)=*(*(a+rows)+0)+1;
}
else if (ch == 'e')
{
*(*(a+rows)+1)=*(*(a+rows)+1)+1;
}
}
fclose(fp);
return a;
}