C++ Aus einer Funktion auf ein Array direkt zugreifen ?

[ACE].:SHARK:.

Lt. Commander
Registriert
Apr. 2004
Beiträge
1.408
Hallo,

ich folgendes Problem und hoffe ihr könnt mir helfen:

In meinem C++ Programm habe ich außerhalb der main ein Array erstellt und mit Werten belegt. Dieses Array wird in einer Funktion die in der main aufgerufen wird verwendet. Ist die Funktion fertig so ist auch das Array wieder leer.

Leider brauche ich aber die Werte am Ende der Funktion noch ein einer anderen Funktion.
Wie lässt sich das Problem lösen.

Hier eine sehr verkürzte Form meines Problems.
-------------------------------------------------------
Code:
#include <cstdlib>
#include <iostream>

using namespace std;

[B]char MeinArray[12];[/B]
[B]int einlesenMeinArray();[/B]   
[B]int verarbeitenMeinArray();[/B] 

int main(int argc, char *argv[]){

[B]einlesenMeinArray();[/B]  //einlesen und Prüfen der Werte im Array
[B]verarbeitenMeinArray();[/B]  //hier sollen die geprüften Werte verarbeitet werden

system("PAUSE");
    return EXIT_SUCCESS;
} 


[B]int einlesenMeinArray[/B](){
      scanf("%11s", [B][I]MeinArray[/I][/B]);
      rewind(stdin);
return // gibt noch int Werte zurück
}

[B]int verarbeitenMeinArray[/B](){
 // und hier sollte ich nun auf die Werte die in MeinArray am Ende der einlesen Funktion stehen zugreifen können. Das Array ist aber wieder leer.
}


Vielen Dank für eure Hilfe schonmal im Vorraus ;)
 
Zuletzt bearbeitet:
Benutze bitte tags, das hilft bei der Übersichtlichkeit enorm.

Übergib dein Array einfach jeweils als Paramter. Abgesehen davon erweckt der Code den Eindruck, die würdest die Funktion benutzen, bevor du sie deklarierst, ich nehme mal an, dass das nicht der Fall ist (?).

Wenn du genauer sagen würdest, was du machen willst, könnte man das vermutlich viel eleganter lösen mit strings etc.


Gruß,

badday
 
Hallo,
so nun habe ich meine Frage etwas nachgebessert :lol:

Was ich genau machen will ist folgendes:

1. In der ersten Funktion soll die Eingabe des Benutzer in ein Array gespeichert werden. Die eingabe wird dann auf Fehler überprüft.
2. Die zweite Funktion soll nun die geprüften Werte aus dem Array der ersten Funktion weiter verarbeiten. (z.B. eine Prüfsumme bilden)

Nur wenn die zweite Funktion auf das Array zugreift ist es leer.

Mein Problem ist leider das ich noch nicht viel in C++ gemacht habe.
Deswegen weiß ich nicht wie genau die Übergabe eines Array als Paramter umgesetzt wird. :(
Könnt ich mir das am Code Beispiel Zeigen ?

Danke
 
Zuletzt bearbeitet:
Klar:

Code:
#include <cstdlib>
#include <iostream>
#include <string>
#include <iostream>

using namespace std;

int einlesen(std::string &str);  //einlesen und Prüfen der Werte im Array
int verarbeiten(std::string &str);  //hier sollen die geprüften Werte verarbeitet werden

int main(int argc, char *argv[]){

std::string str;
einlesen(str);
verarbeiten(str);

system("PAUSE");
    return EXIT_SUCCESS;
}


int einlesen(std::string &str){
      std::cin >> str;

return 0;
}

int verarbeiten(std::string &str){
 //do something
}


Frage, wenn du etwas nicht verstehst, das ist effizienter als wenn ich nun einen Roman schreibe ;)
 
Zuletzt bearbeitet:
Super Vielen Dank
ich werde es gleich mal testen :D
Ergänzung ()

Hallo,
Sry nochmal aber könntenst du mir bitte zeigen wie man das ganze mit meinem "char MeinArray" löst ? Da meine Funktionen schon darauf aufbauen. Und mit deiner Lösung bekomme ich die nicht mehr zum laufen. :(

Vielen Dank
 
Zuletzt bearbeitet:
Das Eingelesene muss schon noch in MeinArray stehen. Vielleicht hast du einen Fehler in den nachgelagerten Funktionen?
 
Du müsstest einfach mal etwas mehr Code zeigen, damit man dir wirklich helfen kann.
 
Zurück
Oben