6
void func(char**& arg1);
int main() {
char* container[3] = { "First", "Second", "Third" };
char** pCon = &container[0];
func(pCon); // This works
func(&container[0]); // no known conversion from char** to char**&
}
Ich vermisse hier eindeutig etwas. Meine Logik besagt, dass diese beiden dasselbe sein sollten.Char ** & Argument Verwirrung
Was sollte das Gleiche sein? AFAIK, '&' ist nur eine Referenz, wenn Sie eine Variable/ein Objekt deklarieren. Andernfalls bedeutet es "Adresse von" – olevegard
Sie übergeben einen Verweis auf ein temporäres zu einer Funktion, die eine nicht temporäre Lvalue-Referenz erwartet. – WhozCraig
BTW, die Lockerung von Zeichenfolgenliteralen, die 'char *' Zeiger initialisieren, wird in C++ 11 entfernt (obwohl Compiler es wahrscheinlich immer noch akzeptieren). Das heißt, Ihre erste Definition sollte wirklich 'char const * container [3] = {...};' sein. –