float array wert als zeiger auf double casten



  • Hallo allerseits!

    Ich will einer funktion die als parameter ein zeiger auf double erwartet ein array wert vom typ float übergeben. Wie caste ich das ?

    void dummy(double *value) {
    
    	printf("dummy: %f\n", *value);
    }
    
    int main() {
    
    	float array[3] = {1.3, 1.4, 1.5};
    
    	dummy(array[1]); // Wie übergebe ich hier den Wert?
    
    	return 0;
    }
    


  • ^^mit 'nem cast haut das nicht hin. doubles sind meistens breiter als floats. musste der funktion ein echtes double-array geben.
    🙂



  • void dummy(double *value)
    {
    	printf("dummy: %f\n", *value); 
    } 
    
    int main()
    {
    	float values[3] = { 1.3f, 1.4f, 1.5f }; 
    
    	double d = values[1];
    	dummy(&d);
    
    	return 0; 
    }
    


  • ok danke. aber ohne zeiger funktioniert es schon - komisch 🙂

    void dummy(double v) {
    	printf("dummy: %f\n", v);
    }
    
    int main() {
    
    	float array[3] = {1.3, 1.4, 1.5};
    
    	dummy(array[2]);  // geht problemlos
    
    	return 0;
    }
    


  • danke theta. so hatte ich es bis jetzt. ich wollte es bloss kürzer, effizienter, eleganter... haben.



  • dermitdemarraytanzt schrieb:

    ...kürzer, effizienter, eleganter...

    dann bleib doch bei einem 'real'-typ, also entweder float oder double. nicht mischen.
    🙂


Log in to reply