I see; thanks very much for your input. So, if I were reading data from a file using an ifstream (which requires a char* to fill with data) in someFunction(...), it would be better to do:

Code:
void someFunction(float* &result)
{
    //Assume some open ifstream called "in" and a known integer, fileSize
    int numFloats = fileSize / sizeof(float);
    result = new float[numFloats];
    in.read((char*)result, numFloats * sizeof(float));
}
Thereby avoiding the cast after allocation entirely, per laserlight. Then, I can just call delete[] floatData in the main subroutine to avoid any potentially undefined behavior?

Understood correctly?