Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Array an funktion übergeben

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
17.02.2004, 16:44 Uhr
RedEagle



Hi
Ic hmöchte ein 2diminsionales Array an eine Funktion Übergeben, nur wie???
(Bin Anfänger!!)


C++:
????? Funktion (?????)
{
????? [1][1] = 5;
return ?????
}

int main()
{
int Var[5][5];
Var = Funktion (?????);
}



Am besten währe es, wenn ihr einfach mal dei Fragezeichen ersetzt, mehr (und nen Kleinen Kommentar, wenns Komplizeirt wird)

Danke im Vorraus
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.02.2004, 16:49 Uhr
RedEagle



und: sowas würde ich auch gerne machen, aber so gehts nicht.
wie mache ich volgendes??

C++:
//...
const anzahl=5;
var [anzahl][anzahl];
//...


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.02.2004, 22:35 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich mach mal ein kleines beispiel mit ints

C++:
void meinearrayfunktionsetztallewerteaufnull(int** myarray,int x, int y){for(int j=0;j<y;++j)
   for(int i=0;i<y;++i)
     myarray[i][j]=0;  
}

int main(){
int **testarray;
int i,x=100,y=200;
//speicher allokieren
testarray = new int*[x];
for(i=0;i<x;++i) testarray[i]=new int[y];

meinearrayfunktionsetztallewerteaufnull(testarray,x,y);

//speicher freigeben
for(i=0;i<x;++i) delete [] testarray[i];
delete [] testarray;
}

--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.02.2004, 15:02 Uhr
RedEagle




C++:
int test(int** feld)
{
feld[1][1]=5;
cout << feld[1][1];
}
int main()
{
//...
int feld_a1 [3][3];
test(feld_a1);
//...
}


Warum geht das Nicht?? (die Ausgabe)
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.07.2007, 19:05 Uhr
Lex_Lex



Hi, ist zwar ein altes Thema aber es hat mir weitergeholfen.

Ich nutze das Beispiel von Windalf.
Habe aber noch Fragen:

1) Wenn ich in meiner Fkt einen Arraywert setze, klappt das alles wunderbar. Wenn ich aber eine Variable nehme schreibt er mir nur Nullen rein. Habe schon geprüft dass die Variable dort einen wert hat.

2) Ich fülle mein Array in meiner main mit Nullen weil nicht jeder wert in der Fkt geschrieben wird. In der main muss ich [0][n] und [1][n] nutzen und der Fkt aber [1][n] und [2][n]

Warum das ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.07.2007, 23:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi ohne genauen code kann ich dir da nicht weiterhelfen - ansonsten bitte bei sowas immer einen neuen post aufmachen und ggf dort auf den alten verweisen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.07.2007, 12:15 Uhr
Lex_Lex




Code:
in iteration.c

void iteration(...)  
{

[...]
double **oef_flaechen;
double **sch_flaechen;
[...]
mallocmat(1,2,
&oef_flaechen, 2, n,
&sch_flaechen, 2, n); //So wird in dem Programm standartmäßig Speicherplatz allokiert
[...]
int blabla=0;
for (i=0; i<n; i++){
    oef_flaechen[0][n]=5;
    oef_flaechen[1][n]=8;

z = flaechen(...,*oef_flaechen);

//Ausgabe des Arrays
for (i=0; i<n; i++){
    blabla++;
    //if (blabla==50) blabla=0;
    //if (blabla==0)
    printf("%.5lf %.5lf\n",oef_flaechen[0][n],oef_flaechen[1][n]);
}


in flaeche.c

int flaechen(
...,double **flaechen_oef)
{
[...]
flaechen_oef[1][v]=357.159;
flaechen_oef[2][v]=gesamtlaenge;
[...]
rwp(...,oef_flaechen,sch_flaechen);


in rwp.c
void rwp(...,double **flaechen_oef,double **flaechen_sch)
[...]
awp(,flaechen_oef,flaechen_sch);
[...]

in awp.c
void awp(,double **flaechen_oef,double **flaechen_sch)


Zur Erklärung:
in iteration.c definiere ich mir meine Matrix (eigentlich sind es zwei, aber wenn ich es für die eine kann dannsicher auch für die andere da genau das selbe damit passiert). Ich allokiere den Speicherplatz und fülle die Matrix. Ich rufe die Fkt flaechen auf und übergebe meine Matrix. In der Fkt flaechen will ich die Werte meiner Matrix ändern. Danach möchte ich die Werte in der Fkt Iteration ausgeben.

So wie in diesem Beispiel oben beschreiben gibt er mir dann auch Werte aus. Allerdings schriebt er mir für oef_flaechen[0][n] 357.159 hin. Für oef_flaechen[1][n] schreibt er 0.00000 obwohl die Variable gesamtlaenge ein Wert hat. Würde ich jetzt die Zeile flaechen_oef[2][v]=gesamtlaenge; z.B. in laechen_oef[2][v]=10.12345 ändern schreibt er mir diesen Wert bei der Ausgabe in iteration unter oef_flaechen[1][n] auch 10.12345 ausgeben. Gesamtlaenge ist aber auch ein double.

Wenn dieses umschreiben in fleachen.c dann mal funktionieren sollte möchte ich die beiden Matrizen (mit sch_flaechen passiert genau das selbe) an rwp übergeben und weiter an awp in awp möchte ich meine Werte dann am besten in der Form oef_flaechen[a][b] zu weiteren Berechnungen nutzen.

VIELEN DANK schonmal für eure Hilfe.

Dieser Post wurde am 29.07.2007 um 12:15 Uhr von Lex_Lex editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
29.07.2007, 13:22 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
z = flaechen(...,*oef_flaechen);



Stern da weg, oef_flaechen ist doch schon **
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
29.07.2007, 13:46 Uhr
Lex_Lex



Hi,

den Stern habe ich gerade weg gemacht. Danke erstmal. Aber irgendwie ändert das nichts ab Ablauf des Programms.

Ich weiß nicht weiter
 
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: