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 ^^


Anmelden zum Antworten