zeiger auf ein array von pointern zurückgeben



  • hi!
    wie gibt man einen zeiger auf ein array von pointern zurück?

    ich gib im mom nur einen zeiger auf einen string zurueck...

    cu

    char* getlinks(int pos)
    {
    	char* links[50];
    
    	links[0] = new char[6];
    	strcpy(links[0], "hallo");
    
    	return links[pos];
    }
    
    int main()
    {
    	char* var = getlinks(0);
    	cout << var << endl;
             delete var;
    }
    


  • cplusplus. schrieb:

    wie gibt man einen zeiger auf ein array von pointern zurück?

    char** myfunction (void) {...}
    


  • char** getlinks(int pos)
    {
        char** links = new char*[50];
    
        links[0] = new char[6];
        strcpy(links[0], "hallo");
    
        return links;
    }
    
    int main()
    {
        char** var = getlinks(0);
        cout << var[0] << endl;
        delete[] var[0] ;
        delete[] var; 
    }
    

    vergiss nicht alles wieder freizugeben! das delete in deiner main gibt nicht alles wieder frei!
    ansonsten: wenn du c++ machen willst google mal nach std::vector<> und std::string.



  • char **getarray()
    {
        char *links[10];
        links[0] = new char [6];
        links[1] = new char [5];
        strcpy(links[0], "hallo");
        strcpy(links[1], "sers");
    
        return links;
    }
    
    int main()
    {
        char* linkarray = getarray()[1];
        cout << linkarray << endl; 
        delete linkarray;
    

    komisch aber dieser evil code funzt...versteh ich auch nicht ganz *g*

    cu



  • dein code erzeugt undefiniertes verhalten.



  • weil

    char *links[10];
    

    local ist??

    und wie funzt das genau:

    char** links = new char*[10];
    

    cu+danke



  • cplusplus. schrieb:

    weil

    char *links[10];
    

    local ist??
    jo

    cplusplus. schrieb:

    und wie funzt das genau:

    char** links = new char*[10];
    

    öh, das funzt genau so wies da steht. 🤡


Anmelden zum Antworten