Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
Dynamische Arrays in C/C++
Dynamische Arrays in C/C++
4D6163
16.12.14
18:45
Hallo Leute,
ich hab gerade jemanden bei den C/C++ Hausaufgaben geholfen und war doch etwas verwundert was in den Folien für eine Deklaration für dynamische Arrays drinnen steht. Und zwar folgenes (selbstgeschriebenes Codebeispiel)
#include <stdio.h>
int main(int argc, char *argv[]) {
int e;
scanf("%d", &e);
int y[e];
for (int i = 0; i < e; i++)
{
y[i]= i;
}
for (int i = 0; i < e; i++)
{
printf("%d\n", y[i]);
}
return 0;
}
Meine Frage ist kurz: Warum geht
int y[e];
das? Oder seid wann geht das? Das Beispiel erzeugt nicht mal eine Warnung. Ich kenn es eigentlich so, das wenn man dynamische Arrays benutzen will, dafür eigentlich mit malloc() rumhantieren muss.
Danke!
Hilfreich?
0
Kommentare
Duck Dodgers
16.12.14
19:40
Also das Beispiel sollte korrekt sein. Aber ich sehe das wie du, für dynamische Arrays würde ich auch Pointer nutzen. Wer weiß, was der Lehrer unter dynamischen versteht
Hilfreich?
0
Dayzd
16.12.14
19:59
Was soll daran auch falsch sein?
Dynamisch bedeutet in dem Fall wohl einfach nur, dass im Vorfeld vom Programmierer die Größe des Arrays nicht festgelegt wird.
änder "e" mal nach der Initialisation vom Array, z.b. in "e = e + 5" und ich wette, dann fliegt dir das Ganze später um die Ohren.
Hilfreich?
0
lasergans
16.12.14
20:29
int y[e]; <-- Stack
int *y = malloc(..); <-- Heap
Hilfreich?
0
Marcel Bresink
16.12.14
21:06
Das ist eine Neuerung in der Sprache C, die 1999 mit der Norm "C99" (ISO/IEC 9899:1999) eingeführt wurde.
Es handelt sich nicht wirklich um ein dynamisches Array, sondern um den neu eingeführten Datentyp "Variable Length Array" (VLA). Dieser Typ darf nur in Blöcken und in Funktionsprototypen verwendet werden, nicht jedoch "static" oder "extern".
Hilfreich?
0
tmlen
17.12.14
11:57
Variable Length Arrays existieren in C99, jedoch offiziell nicht in C++. Aber einige Compiler unterstützen sie als nicht-standard Erweiterung. Z.b GCC:
.
In C++17 werden "arrays of runtime bound" vermutlich ins Standard integriert:
.
Hilfreich?
0
4D6163
18.12.14
12:25
Ok, vielen Dank für die Antworten. Man lernt immer wieder was neues
Hilfreich?
0
gfhfkgfhfk
18.12.14
14:16
4D6163
Hallo Leute,
ich hab gerade jemanden bei den C/C++ Hausaufgaben geholfen und war doch etwas verwundert was in den Folien für eine Deklaration für dynamische Arrays drinnen steht.
Handelte es sich um C oder C++? Für C ist das beschriebene ok, aber wenn es sich um C++ handeln sollte taugt der Kurs nichts.
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Mac OS X: 25 Jahre Aqua, 25 Jahre Dock
macOS 15.2 steht ab sofort zur Verfügung
TechTicker
Parallels führt x86-Windows auf M-Macs aus – Te...
Gurman zum Release des neuen Apple TV, HomePods...
Vor 18 Jahren: iPhone, Apple TV und "Apple Inc."
Neuer Mac: Vorbereitung für den Umzug vom alten...
iPhone SE 4: Dummy-Modelle zeigen das Design