Пытаюсь написать простенькую программку, которая бы динамически бы выделяла массив + при необходимости перевыделяла его в большую сторону: считывает символы с stdin, сохраняет, сортирует, выводит. После нескольких иттераций вылетает с ошибкой, примерно такого вида:
*** glibc detected *** ./psort: free(): invalid next size (fast): 0x08935008 ***
gcc version 4.4.0 20090506 (Red Hat 4.4.0-4) (GCC), собираю gcc -Wall -Werror -pedantic -ansi -g -o psort psort.c
Ещё просьба покритиковать сам код на стиль. И ещё, кто подскажет (не пойму где копать). Как обрабатывать ошибки, если введено не int? scanf просто "виснет", если, скажем, ввести 3 4 aa45. Как правильно поступать?