Casten



  • hi,

    warum braucht man keinen cast hier in der main? wird implicit gecastet?

    void test(void *ptr)
    {
    	int *var = static_cast<int*>(ptr);
    	cout << *var << endl;
    }
    
    int main()
    {
    	int var = 10;
    	test(&var);
            return 0;
    }
    

    sieht man oft bei threadfunktionen das die einen void* haben wollen...



  • Wo ein void* erwartet wird, ist jede Adresse erlaubt.
    Deshalb ist in main kein cast nötig.

    Ist umgekehrt ein bestimmter Zeiger verlangt, reicht ein void *
    nicht, dann muß man casten (zumindest seit ANSI-C).

    mfgkw


Anmelden zum Antworten