-
zeiger auf void
Kann mir jemand sagen wofuer ich den void zeiger brauchen kann?um zu kompilieren
muest ihr die zeile auskommentieren mit cout.....*universal
PHP-Code:
#include <iostream.h>
int main()
{
int *ZgInt;
float *ZgFloat;
int Schwein = 7, Hund = 27;
float x = 1.2345, y = 32.14;
void *universal;
ZgInt = &Schwein;
*ZgInt += Hund;
cout << "Schwein hat jetzt den Wert " << *ZgInt << "\n";
universal = ZgInt;
ZgFloat = &x;
y += 5 * (*ZgFloat);
cout << "y hat jetzt den Wert " << y << "\n";
universal = ZgFloat;
cout << "Inhalt von Universal ist jetzt "<< *universal; //Diese Zeile tut nicht(Zeigerop. ungueltig)
const char *Name1 = "Johann"; // Wert kann nicht verändert werden
char *const Name2 = "Johann"; // Zeiger kann nicht verändert werden
return 0;
}
-
Du kannst einen void Pointer nicht dereferenzieren,wenn müßtest du ihn vorher auf einen Typ casten.
Ein void Pointer ist ein generischer Pointer,der auf alles und nichts zeigen kann,und wird in C oft benutz,um allgemeine Algorithmen schreiben zu können.
In C++ ist der Sinn von void Pointern stark eingeschränkt.
Btw.
Code:
const char *Name1 = "Johann"; // Wert kann nicht verändert werden
char *const Name2 = "Johann"; // Zeiger kann nicht verändert werden
Die zweite Zeile ist falsch.Du kannst den String "Johann" auf keinen Fall verändern,weil der String in einen Read-Only-Speicherbereich abgelegt ist.
Nur wegen der C Verwandschaft erzeugt die zweite Zeile keinen Compilerfehler.