Fehler beim generieren eines Arrays

#4642290
Lesenswert?
• ▲
▼
Lisa schrieb:
> Geht das nicht in einem Befehl, da x,y & z alle gleich groß sein sollen?
> wie zb x=y=z=scanf("%ld%lf%lf",&x[n],&y[n],&z[n]);

Zu Funktionen wie malloc() gibt es jede Menge Dokumentation. Die kann 
man ruhig auch mal lesen - das tut nicht weh. :-)

Zum Beispiel:
http://www.cplusplus.com/reference/cstdlib/malloc/

Wie man sieht, bekommt man bei einem Aufruf von malloc einen Zeiger 
auf den allokierten Speicherbereich zurück. Wenn man also drei 
Speicherblöcke will, muss man eben dreimal Speicher anfordern.
Gast #4642296
Lesenswert?
• ▲
▼
> Weis jemand welchen Fehler ich hier mache?
Leider gleich mehrere.

1. Unter Project&Code hat dieser Beitrag, der eine Frage ist nicht zu 
suchen. Unter Project&Code sollen fertige Projekte präsentiert werden. 
Hier allerdings nur der Vollständigkeit halber erwähnt.

2. Einen orthographischer Fehler. Hier allerdings nur der 
Vollständigkeit halber erwähnt. Es heisst: "Weiß".

3. Einen begrifflichen Fehler. Hier allerdings nur der Vollständigkeit 
halber erwähnt.
Es heisst auf Englisch "Array" und die übliche K&R-Übersetzung spricht 
von "Vektor".

4.
> Ich möchte 3 n-dimensionale double Felder generieren x[n], y[n], z[n]

Die Aussage ist widersprüchlich.
Die Ausdrücke x[n], y[n], z[n] betreffen drei eindimensionale Vektoren 
x, y und z. Nicht drei n-dimensionale Vektoren.

4. Aus dem Kontext heraus:
> x=y=z=(double*)malloc(n*sizeof(double*));

Den von malloc zurückgegebenen Zeiger, kann man nicht mehrfach verwenden 
um sie als Zeiger auf drei verschiedene Vektoren zu verwenden. 
Vielmehr erhältst Du so einen Zeiger, der, wenn Du x, y und z damit 
initialisierst, in allen Fällen auf ein und denselben Vektor zeigen. 
Nicht auf drei verschiedene.

5. Die Beschreibung des Problems im Detail fehlt. Was geschieht, wenn Du 
es versuchst?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren