АД
Анна Давыдова

Препод сказал нет очистки памяти, но я не понимаю зачем ее тут делать и как?

#include


#include


#include
"romb.h"





int
main()

{

int
x1, x2;

printf("Vvedite d1 d2: ");

scanf("%d",&x1);

scanf("%d",&x2);



romb *r =
new_romb(x1,x2);

printf("\nSTORONA = %.2f", r->a);

printf("\nP = %.2f", perimetr(r));

printf("\nS = %.2f", square(r));

getch();

return
0;

}

2) #ifndef Y_Romb

#define
Y_Romb



#include


#include




struct
romb {

int
d1;

int
d2;

double
a;}; romb*
new_romb(int t1, int
t2){romb* p
=(romb*) malloc(sizeof(romb));if
(p != NULL) { p->d1 = t1; p->d2 = t2; p->a
=(double) 1/2* (double)
sqrtf(t1*t1+t2*t2); }return
p;}

КЧ
Константин Чеклецов

1) Очищайте указатель r после последней из строк кода, где он используется.
delete &r;

2) Код с malloc'ом внизу - вообще в обфусцированном состоянии.
Разбирать не стал, но погуглите "c++ malloc delete" или "c++ malloc free memory".

3) Для чего очищать память?
Если память, отведённую под неиспользуемые переменные, не очищать, то программа будет занимать слишком много оперативной памяти компа. А она ограничена. Соответственно, комп будет тормозить.
В данной программе это незаметно, тем более что при закрытии программы память очищается сама. Но в более-менее крупных программах, утечку памяти можно не только увидеть в диспетчере задач, но и почувствовать.

Похожие вопросы
как делать очистку переменных (массивов) ? в с++
что делать на паре если нет препода?
Какие есть программы для очистки компьютера? (Например для очистки диска С)
Что делать если меня бесит препод?
что делать если препод в меня кажется втюхался ??
Очистка памяти и коментарии c#
Появился вирус в оперативной памяти, пишет что очистка не возможна, что делать?
телевизор LG 42lm660t очистка памяти
Очистка памяти на IPhone.
Программа очистки памяти компа