Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » Malloc und Free C Programmierung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Malloc und Free C Programmierung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
LULUFEE
Grünschnabel


Dabei seit: 17.05.2015
Beiträge: 1

Malloc und Free C Programmierung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo,
ich muss zur Übung diese 3 Beispiele auf Ihre Fehler überprüfen. Leider bin ich glaub ich echt sehr blind, was das betrifftAugenzwinkern (Anfang 1.Semster). Habe eigentlich gedacht, das wäre total easy, aber irgendwie ist der Groschen doch nicht gefallen. Daher diese Übung.

a)
1 c h a r * ausgabe = " S p e i c h e r v e rwa l t u n g \ n " ;
2 c h a r * z i f f e r n = ma l l o c ( s i z e o f ( c h a r ) * 1 0 ) ;
3 f o r ( i n t i =0 ; i <11; i ++){
4 *( z i f f e r n + i ) = ' 0 ' + i ;
5 }
6 f r e e ( ausgabe ) ;
7 f r e e ( z i f f e r n ) ;

b)
1 i n t * i ;
2 f o r ( i n t k=0 ; k <10; k++) {
3 i = ma l l o c ( s i z e o f (2* i n t ) ) ;
4 i f ( i == NULL) { / * a u s g e l a s s e n : Fehl e rme ldung , Programm beenden * / }
5 i n t * j ;
6 j = i ;
7 i ++ ;
8 * i = k ;
9 f r e e ( i ) ;
10 }

c)
1 i n t ** ma t r i x ;
2 ma t r i x = ma l l o c (3* s i z e o f ( c h a r ) ) ;
3 i f ( ma t r i x != NULL) {
4 f o r ( i n t i =0 ; i <3; i ++){
5 ma t r i x [ i ] = ma l l o c (3* s i z e o f ( i n t ) ) ;
6 }
7 / * a u s g e l a s s e n : Uebe rprufung und e twa s mi t d e r Ma t r ix t u n * /
8 }
9 f r e e ( ma t r i x ) ;



Meine Ideen:
Meine korrigierten Lösungsvorschläge:
a)
1. char *ausgabe;
2.char *Ziffern
3. char= "Speicherverwaltung\ n " ;
4. Ziffern= malloc (sizeof(char)*10;

b)
17.05.2015 13:13 LULUFEE ist offline E-Mail an LULUFEE senden Beiträge von LULUFEE suchen Nehmen Sie LULUFEE in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe meine Antworten nicht getestet, da ich keine Lust habe, die vielen Leerzeichen zu löschen.

a)
free(ausgabe); ist falsch, da free nur für dynamisch allocierten Speicher (malloc, calloc, realloc) zuständig ist.
Ansonsten habe ich nichts auszusetzen.
char= "Speicherverwaltung\ n " ; ist Unsinn, du kannst du einen Datentyp keinen Inhalt zuweisen, sondern nur einer Variablen.

b)
2*sizeof(int) statt sizeof(2*int)
da i erhöht wird, wird der Speicher mit free nicht komplett freigegeben. Stattdessen wird Speicher freigegeben, der gar nicht reserviert wurde.

c)
matrix = malloc(3 * sizeof(int*));
es sollen ja Zeiger auf int verwendet werden.

__________________
Syntax Highlighting fürs Board (Link)
17.05.2015 17:52 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
ed209
Routinier


Dabei seit: 07.09.2006
Beiträge: 324

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich bin ja fast der Ansicht, daß jemand der Informtik studiert oder in der Schule durchnimmt in der Lage sein sollte einen Text korrekt einzutippen.

Ich bin echt Neugierig wie da all die Leerzeichen reingekommen sind.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ed209: 17.05.2015 18:27.

17.05.2015 18:27 ed209 ist offline E-Mail an ed209 senden Beiträge von ed209 suchen Nehmen Sie ed209 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Technische Informatik » Malloc und Free C Programmierung