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??
jocplusplus. schrieb:
und wie funzt das genau:
char** links = new char*[10];
öh, das funzt genau so wies da steht.