Dynamische Arrays in C mit malloc/calloc ?
-
Hallo
Immer wieder liest man hier, das einige der Meinung sind, man könnte mit malloc/calloc dynamische Arrays erzeugen.
Dann schreiben widerum andere, dass es keine dynamischen Arrays wären.
Was ist nun wahr??!!Hier ist jedenfalls eine kleine Auswahl von Seiten, in denen von dynamischen Arrays erzeugt durch malloc die Rede ist.
http://stackoverflow.com/questions/8338431/dynamic-array-using-ansi-c
http://openbook.galileocomputing.de/c_von_a_bis_z/014_c_dyn_speicherverwaltung_007.htm#mja8b7295cb78c084f195c935fc361f5db
http://pronix.linuxdelta.de/C/standard_C/c_programmierung_17.shtml#4
http://roseindia.net/c-tutorials/c-dynamic-array.shtml
http://numerik.mathematik.uni-bayreuth.de/~rbaier/lectures/c/html/node170.html
-
In reinem C-Sprech ist es kein Array. Es fehlen (den zurückgegebenen Zeigern) Eigenschaften die Array halt haben. z.B.:
- herausfinden der Array-Größe via sizeof
- Arrays sind nicht in ihrer Größe änderbar wenn einmal angelegt(das gilt natürlich allgemein für Zeiger auf zusammenhängenden Speicher, also auch für Zeiger auf echte Arrays)
Es wird halt trotzdem oft Array genannt weil man den Begriff idR nicht so streng anwendet wie manche Korinthenausscheider es tun. Das hast du ja selbst schon festgestellt.
-
Arrays werden C bei der Definition der Variable mit den [] gekennzeichnet.
Diese haben dann eine feste Größe, die während der Laufzeit nicht mehr verändert werden kann.
Die Adresse von diesem Array bleibt auch während dessen Lebenszeit gleich.Mit malloc bekommst du nur die Adresse von einem Speicherbereich.