С помощью calloc хочу создать массив символов, размер которого может увеличиваться (заранее неизвестен). Размерность массива - вначале INIT_SIZE строк по 10 символов, потом добавляю по 5 строк.
char **arr;
arr=(char **)calloc(INIT_SIZE, sizeof(char *));
for (i=0;i<INIT_SIZE;i++)
arr[i]=(char *)calloc(10, sizeof(char));
arr_size=INIT_SIZE;
..........
// Возникла необходимость увеличить массив - добавляю память еще для 5 элементов
if (index==arr_size) {
// Цикл увеличения массива
for (i=0;i<5;i++)
arr[i+index]=(char *)calloc(10, sizeof(char));
arr_size+=5;
}
В переменной index - значение индекса последнего элемента массива
После того как цикл увеличения массива выполнился один раз в первом элементе (arr[0]) оказывается мусор, после второго в arr[1] - тоже мусор.
Не понятно, что сделал не так, вроде все по книжке.
Пишу на C под Linux.
Заранее благодарен откликнувшимся.