, поэтому у меня есть код, который отлично работает с небольшими текстовыми файлами, но вылетает с большими. Смысл кода в том, чтобы взять файл и параметр n, проанализировать код и сохранить все в 2d массиве в кусках размера n. Таким образом, буфер [0] [0] - [0] [n-1] должен содержать n символов, а буфер [1] [0] - [1] [n-1] должен содержать следующий n чанк и так далее. Мой код работает, когда файл содержит всего несколько слов, но с большим файлом я получаю сообщение об ошибке: realloc (): недопустимый следующий размер. Есть идеи почему? Вот мой код.
void bsort(int n)
{
int numwords= 0;
int numlets=0;
char ** buffer=(char**)malloc(numwords*n);
while (!feof(stdin))
{
char l= getchar();
if (l!= EOF)
{
if (numlets%n==0)
{
numwords=numwords+1;
buffer=(char**)realloc(buffer,numwords*n);
if(!buffer)
{
printf("Allocation error!");
}
buffer[numwords-1]= (char*) malloc (n);
buffer[numwords-1][numlets%n]=l;
// printf("%c", buffer[numwords-1][numlets%n]);
numlets=numlets+1;
}
}
int i,j;
for (i=0; i < numwords; i++)
{
for(j=0; j< n; j++)
{
printf("%c",buffer[i][j]);
}
}