Wie unterscheidet man Zeiger und Referenzen zur Laufzeit? Zum Beispiel, wenn ich einen Zeiger eines Datentyps freigeben wollte, ohne zu wissen, ob es ein Zeiger war oder nicht, wie würde ich das tun? Gibt es eine Methode, um festzustellen, ob eine Variable im Stack oder über malloc() zugewiesen wurde?Unterscheidung zwischen Zeiger und Referenz zur Laufzeit ANSI C++
void destInt(int* var)
{
free(var);
}
int num = 3;
int &numRef = num;
int* numPtr = (int*)malloc(sizeof(int));
*numPtr = num;
destInt(&numRef); //Syntactically correct but generates invalid pointer()
destInt(numPtr); //Fine syntactically and logically
Dies ist nicht C. Oder es sieht nicht wie C. – strager
C hat keine Referenzen ... –
Auch Ihre "destInt (numRef);" ist syntaktisch überhaupt nicht korrekt. Eine Referenz kann nicht an eine Funktion übergeben werden, die ein int * akzeptiert. –