>when a float value is initialized with a float pointer?
Where exactly in your posted code do you think that is happening?
float *a = 2.5;
This line creates a variable named "a" of type pointer to float, and attempts to initialize it with the double value 2.5 which clearly is an illegal memory address.
- Wayne