/*
P R O G R A M M B E S C H R E I B U N G

Demo-Zweck:
Dynamischer Speicher und Strukturen


Programm-Beschreibung:  
Der Anwender gibt z.B. 4 ein. Dies bedeutet die Anzahl von Räumen.
Das Programm belegt dann automatisch die Länge, Breite und Höhe dieser 
Räume mit bestimmten Werten vor.
Diese Werte sind willkürlich gewählt, da sie nur zu "Testzwecken" dienen
Die Räume werden in einem dynamischen Speicher gespeichert.
*/

#include "stdafx.h"
#include <malloc.h>


struct raum{
	int l;
	int b;
	int h;
};

int main(){
	int i;
	int fehler=0;
	int anz=0;
	struct raum *pr;

	printf("Bitte Anzahl der Raeume eingeben =\n");
	scanf("%d",&anz);

	pr = (struct raum *) malloc (anz*sizeof(struct raum));
	if(pr!=NULL){
		for(i=0;i<anz;i++){
			(pr+i)->l=i;
		// gleichwertige Anweisungen:
		//	(*(pr+i)).l=i;
		//	pr[i].l=i;
			(pr+i)->b=i+10;
		// gleichwertige Anweisungen:
		//	(*(pr+i)).b=i+10;
		//	pr[i].b=i+10;
			(pr+i)->h=i+20;
		// gleichwertige Anweisungen:
		//	(*(pr+i)).h=i+20;
		//	pr[i].h=i+20;

		}

		for(i=0;i<anz;i++){
			printf("%d " "%d " "%d\n", (pr+i)->l, (pr+i)->b, (pr+i)->h);
			// gleichwertig:
			//	printf("%d " "%d " "%d\n", pr[i].h,(*(pr+i)).b, (pr+i)->h);
		}
		free(pr);
	}
	else
		fehler=-1;

	if(fehler==-1)
		printf("Es gibt keinen freien Speicher mehr");
		
	// Nur zum Test: Zugriff auf freigegebenen Speicher
	pr->l=100;
	printf("%d", pr->l);
	return 0;
}

