Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Arrays uebergeben?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.06.2004, 15:10 Uhr
Cuthalion



Also, ich habe gerade angefangen C zu programmieren und wuerde sagen die grundlegenden Strukturen und Befehle habe ich drin. Nun steh ich aber vor dem 1. etwas fortgeschrittenen Problem:

Ich habe eine Funktion welche mir im Laufe ihrer Berechnungen ein 2-dimensionales INT-Array fuellt. Ausserdem habe ich 2 INT Variabelen
welche Breite und Groesse des oben erwaehnten Array`s enthalten.
Alle 3, also Array und beide Int-Variablen wuerde ich gerne in eine Folgefunktion uebergeben. Also wirklich so das ich diese Sachen in der neuen Funktion so benutzen kann als ob sie dort berechnet worden waeren...

Hatte am Amfang gehofft das Array einfach als Rueckgabewert angeben zu koennen, aber so einfach ist es wohl nicht. Also hoffe ich jetzt einfach mal auf eure Hilfe! Unten jetzt nochmal schwer vereinfachter C-Code der hoffentlich klarer macht was ich habe und wo mein Problem liegt:


C++:

#include <stdio.h>

int arrayfuellen() {

/*rechenrechenrechen -> x*/

int breite = x;

/*rechenrechenrechen -> y*/

int hoehe = y;

/*rechenrechenrechen -> "arrayinhalt"/

int ausgabearray[breite][hoehe] = "arrayinhalt";
};


int arraybenutzen() {
/*brechne irgendwas mit breite,hoehe,ausgabearray*/

};

int main(){
arrayfuellen();
arraybenutzen();
};




Naja so oder aehnlich...

Gruss & Dank im vorab
Cuthalio


Bearbeitung von typecast:
cpp-Tags eigefügt

Dieser Post wurde am 30.06.2004 um 16:13 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.06.2004, 15:29 Uhr
freshman



streng genommen redest du von einer Matrix, nicht von einem array
also, ich würde so implementieren:
(alles ungetestet und ohne GEwähr)

C++:
void matrixfuellen(int ***, int * ......);
void matrixbenutzen(int ** matrix, int breite,....);
int main(){
  int ** matrix;
  int breite, h....
  matrixfuellen(&matrix, &breite......);
  matrixbenutzen(matrix, breite,....);
  for(i=0; i<breite ;i++){//Speicher freigeben
    delete []matrix[i];
  }
  delete []matrix;
  return 0;
}
void matrixfuellen(int *** pmatrix, int * pbreite,...){
  *pbreite = irgendeinwert;
  //....
  *pmatrix = new int * [*pbreite];
  for(int i=0; i<hoehe ;i++){
    (*pmatrix)[i] = new int[*phoehe];
  }
  (*pmatrix)[index1][index2]=irgendeinwert;    
}
void matrixbenutzen(int ** matrix, int breite,....){
  //arbeiten auf der Originalmatrix mit matrix[i][j]
}



--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);

Dieser Post wurde am 30.06.2004 um 15:53 Uhr von freshman editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.06.2004, 15:33 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@freshman
muss dich mal loben... bist neu und verwendest auf anhieb codetags...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.06.2004, 15:47 Uhr
freshman



thanx', sieht doch viel schöner aus und kost' auch nix
--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: