Returnera array
4 svar · 239 visningar · startad av Thomson
char* CharArrayRetur(int size)
{
return new (sizeof(char) * size);
}
void main()
{
char* x = CharArrayRetur(10);
}
Tack för svaret, men jag var lite otydlig.
Jag vill returnera detta:
char* text[2]
t.ex return text;
Då får du allokera nutt minne på Heapen och kopiera innehållet i text2 till det nya minnesblocket och returnera en pekare till det nya minnesblocket. Din variabel text2 ligger lokalt på stacken undertiden du är kvar i funktionen.
Det går alltså inte att returnera arrayer i C++.
Men:
Man returnera en pekare
char* foo()
Man kan returnera en container
vector<char> foo()
Man kan faktiskt också returnera en referens till en array:
char (&foo())[20]
{
static char arr[20];
strcpy(arr,"Sang-drax");
return arr;
}
int main
{
cout << foo();
}