Крутой народ в Си подскажите следующую вещь плиз: есть некое динамическое выделение памяти для массива, к примеру: int *a; a = (int*)malloc(50*sizeof(int)); а в итоге используется только первых 20 элементов. нужно высвободить неиспользованную память под 21-50 элемент. Можно в принципе так: a = (int*)realloc(a,20*sizeof(int));//20-это как раз используемые элементы. Только при этом, на сколько я понимаю, происходит выделение памяти в другом месте и туда происходит копирование этих 20 элиментов, а та память высвобождается. Или же realloc сам там по умному или другой блок выделяет(если больше) или укорачивает текущий блок, но не выделяет в другом месте (если меньше). ?????????????? ps если никто не даст ответа в течении суток - сам в исходники полезу
[Сообщение изменил Vovan 04-08-2002.] |