Динамическая память

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Евгений Александрович
Сообщения: 82
Зарегистрирован: 19 дек 2009, 16:48

В чем мои ошибки с динамикой?!

Код: Выделить всё

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <stdlib.h>
struct fond{
	char fio[40];
	int num;
}list[20];
 int n;
void enter(){
	register int a;
for(a=0;a<n;a++)
{
	printf("Enter fio: \n");
	scanf("%s",&p[a]->fio);
	printf("Enter num: \n");
	scanf("%d",&p[a]->num);
}
}
void print()
{
	register int a;
	for(a=0;a<n;a++)
	{
		printf("%d  %s   %d",a,p[a]->fio,p[a]->num);
		printf("\n");
	}
}
void main(){
	 printf(" Skolko?! \n");
scanf("%i",&n);
	struct fond *p;
	p=(struct fond*)malloc(n*sizeof(fond));
	void enter();
	void print();
	enter(p);
	print(p);
	getch();
	delete(p);
}
Аватара пользователя
Decoder
Сообщения: 308
Зарегистрирован: 19 фев 2008, 23:11
Откуда: Moscow

Если память выделяется функцией malloc(), то освобождать её нужно функцией free(), а не оператором delete.
Поумнеть несложно, куда труднее от дури избавиться.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Совершенно верно. Подобная ошибка - это не просто плохой стиль. Это потенциальная кора.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить