Archiv verlassen und diese Seite im Standarddesign anzeigen : Rückgabe mehrdimensionale Felder
Hi!
Kann mir jemand einen Prototyp liefern für den rückgabewert eines zweidimensionalen Arrays?
Das hier klappt nicht:
float rueck[][] sinusberechnen(float feld[][SPALTEN],int zeilen);
Klappt das nur über Pointer?
Danke,
Klaus
ja, denn wie man als C Programmierer gelernt haben sollte, werden arraydefinitionen sobald sie irgendwie als parameter verwendet werden, zum Typ zeiger auf Arraytyp gewandelt.
dein compiler macht also aus deinem prototyp ein:
float * sinusberechnen(float * feld, int zeilen);
Er kann einfach die groessenangabe mit in den Typ qualifizieren.
in C gibt man soweis kaum komlexere elemnte als rueckgabe zurueck.
weil den rueckgabewert reserviert man lieber fuern fehlercode, komplexere typen gehn prinzipiell nicht. Und erst recht keine Arrays, weil ein array erzeugen und ausserhalb des Contextes von irgendwem loeschen lassen, ist mega graessliches Design , nicht nur in C !
besser: den aufrufer das array erzeugen lassen und die funktion selber schreibt die daten nur ins array
int sinusberechnen(float * Source, size_t SourceSize, float * target, size_t * targetsize);
waer vielleicht nen kandidat !
Ciao ...
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.