Witam funkcja realloc wydaje się nie działać, gdy wpisuje tekst z liczbą wierszy ponad 100 visual studio się wyłącza :). Gdyby ktoś miał jakieś inne zastrzeżenia do kodu to proszę o opinie.
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1000
const int krok = 100;
FILE *fd;
void error(int nr);
int ile_slow(char *);
int main()
{
char bufor[MAX_LINE];
int len, i, l;
if (!(fd = fopen("tekst.txt", "r")))
{
error(2);
}
i = 0;
l = 0;
int dlugosctablicy = krok;
char **ilosc_lini = (char **)malloc(100 * sizeof(char*));
while (fgets(bufor, MAX_LINE, fd))
{
if (i == dlugosctablicy)
{
dlugosctablicy += krok;
char **nowelinie = (char**)realloc(ilosc_lini, krok * sizeof(char *));
if (!nowelinie) error(5);
}
len = strlen(bufor);
bufor[len - 1] = '\0';
char *napis = (char*)malloc(len + 1 * sizeof(char));
strcpy(napis, bufor);
ilosc_lini[i] = napis;
l += ile_slow(ilosc_lini[i]);
i++;
}
system("pause");
}