Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 14:08   #1
SK-Mentos
Новичок
Джуниор
 
Регистрация: 25.11.2010
Сообщений: 2
По умолчанию не могу разобраться в программе, как она работает

/*5.1 вывести на экран в обратном порядке следования символов текст, введенный со стандартного ввода*/

#include <stdlib.h>
#include <stdio.h>

int main(void)

{

char* bufer;
int i=0;
int c=' ';

/*------------------------------------------------------------*/
if((bufer =(char*)malloc(0))==NULL)
{
printf("\n!Error into malloc!\n");
return 0;
}
/*------------------------------------------------------------*/

printf("Input text:\n");
while((c=getchar())!=EOF)
{
if((bufer=(char*)realloc((void*)buf er, i+1))==NULL)
{
printf("\n!Error into realloc!\n");
break;
}
bufer[i]=c;
i++;
}
/*------------------------------------------------------------*/

for(i=i-1; i>=0; i--)
putchar(bufer[i]);
free(bufer);

return 0;

}

не могу понять как она работает(( преподаватель написал в классе, и не обьяснил))
SK-Mentos вне форума Ответить с цитированием
Старый 25.11.2010, 14:51   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Что именно вам не понятно можно узнать??
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 25.11.2010, 15:02   #3
SK-Mentos
Новичок
Джуниор
 
Регистрация: 25.11.2010
Сообщений: 2
По умолчанию

что происходит в этой строчке

if((bufer=(char*)realloc((void*)buf er, i+1))==NULL)
SK-Mentos вне форума Ответить с цитированием
Старый 25.11.2010, 15:11   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

char *realloc(ptr,size);

Описание.

Функция realloc изменяет размер ранее захваченного блока
памяти. Аргумент ptr указывает на начало блока. Аргумент size за-
дает новый размер блока в байтах. Содержимое блока не изменяется.
Аргумент ptr может указывать на блок, который должен быть осво-
божден прежде, чем последуют вызовы calloc, halloc, malloc,
realloc.

Возвращаемое значение.

Функция realloc возвращает char-указатель на перезахвачен-
ный блок памяти. Блок может быть передвинут, если его размеры из-
менены, поэтому аргумент ptr для функции realloc не обязательно
должен быть таким же, как и возвращаемое значение.
Возвращается значение NULL, если памяти недостаточно, чтобы
расширить блок к заданному размеру. Если это происходит, то пер-
воначальный блок освобождается.
В памяти, на которую указывает возвращаемое значение, га-
рантировано выравнивание для хранения любого типа объекта. Чтобы
получить указатель на тип, отличный от char, используется преоб-
разователь типа возвращаемого значения.
P.S.: Юзайте гугл!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобраться как работает программа(сложение дробей) Superlotles Общие вопросы C/C++ 1 15.05.2010 16:05
Не могу разобраться почему не работает justify F1ernandes HTML и CSS 2 28.01.2010 19:29
text-aling:justify , Не могу разобраться почему не работает F1ernandes HTML и CSS 0 28.01.2010 11:55
Как определить когда нажата кнопка мыши, если она нажата в совсем другой программе? Iceman Общие вопросы Delphi 2 19.10.2009 19:03