Char Array aus Funktion an Main übergeben
-
Guten Tag
ich versuche jetzt schon seit einigen Tagen aus einer Funktion ein
array oder zu mindest einen pointer auf das array zurückzugeben. Ich krige
es aber einfach nicht hin. Ich hätte es so versucht aber ohne erfollg.[code]#include <iostream> #include <string> #include <cstring> using namespace std; void test() { char *Buffer; Buffer = new char[ strlen( "Test" ) + 1 ]; strcpy( Buffer, "Test" ); } int main (){ cout << Buffer << endl; delete [] Buffer; }
Allso meine Frage wie lege ich das array an ohne das es nach dem verlassen
der funktion zerstört wird, wie übergebe ich dann den pointer am besten
an die main ?
Were super wen mir da wer helfen kann.
Ach das array global anlegen geht leider auch nicht da die größe variabel ist.
-
Oh entschuldigung ich hab gerade bemerkt das ich in das falsche forum geschrieben haben sory
-
Ich nehme an du möchtest sowas haben:
#include <iostream> #include <string> #include <cstring> using namespace std; char *test() { char *Buffer = new char[strlen("Test")+1]; strcpy( Buffer, "Test" ); return Buffer; } int main () { char *buf = test(); cout << buf << endl; delete [] buf; }
Aber es wäre besser gleich std::string zu verwenden. Dann brauchst du kein 'new' und musst dich nicht ums Speichermanagement kümmern. Ausserdem brauchst du dann auch keine C Funktionen wie strcpy.
-
Super ich bedanke mich schon mal vielmas bei dir
Dann bin ich schon mal einen großen schritt weiter nur
hapert es bei mir gerade am verstehen. Wie ist den jetzt genau der name
des angelegten Arrays ? allso wie greife ich darauf jetzt am bessten drauf zu ?ich hätte jetzt dises program
#include <iostream> #include <string> #include <cstring> using namespace std; const int SIZE = 50; char kryptABC[27]; // globale variable verschlüsseltes Alphabeth void krypt(int key) { int I, s, charakter = 25; //zählvariablen deklaration char ABC[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (I = (charakter - key); I != charakter; I++ ) { kryptABC[s] = ABC[I]; s++; } for (I = 0; I != (charakter - key + 1); I++ ) { kryptABC[s] = ABC[I]; s++; } return; } void text_eingabe() { } int key_eingabe() { int I; int key;// schlüssel Eingabe for (I = 0; I != 1;) { cout << "Schlüssel Eigeben: "; cin >> key; if (key > 25) cout << "Schlüssel muss < 25 sein!" << endl; else{ break; } } return key; } int main() { int key; key = key_eingabe(); krypt(key); cout << kryptABC << endl; }
Und ich würde jetzt gerne das array kryptABC an die main übergeben um damit weiter zu arbeiten geht das jetzt überhaupt so wie ich mir das forstelle ?
sory ich hoffe ich nerfe keinen aber ich durchschaue das immer noch nicht gans ^^