void und casten ;)



  • ist folgender Code so in Ordnung oder muss hier noch gecastet werden?

    #include <stdio.h>
    
    int main(void) 
    {
    	int i = 999;
    	char *Text = "Hallo Welt!";
    	void *x;
    
    	x = Text;
    	printf("%s\n", x); // gibt mir "Hallo Welt!" aus
    
    	x = &i;
    	printf("%d\n", i); // gibt mir "999" aus
    }
    


  • es ist richtig was du machst aber nicht wirklich sinvoll
    z.b

    x = &i;
    

    und dann verwendest du x nicht mehr

    mfg



  • Vertexwahn schrieb:

    ist folgender Code so in Ordnung oder muss hier noch gecastet werden?

    printf("%s\n", x); // gibt mir "Hallo Welt!" aus
    

    Hier muss gecastet werden. Auf den meisten Architekturen hat ein void* zwar die gleiche Repräsentation wie ein char*, aber das ist nicht garantiert und führt allgemein zu undefiniertem Verhalten.


Anmelden zum Antworten