[Solved] Array of structs or pointer indexing ... Options / Best practice?

void MapFloatName(float * NewVarPtr, char NewName[]){      // function to build array data, fetching the pointer in the process

This function expects a pointer to a float as the first argument.

  MapFloatName(& BatVolts,"BatVolts");

BatVolts IS NOT a float. &BatVolts is not a pointer to a float.

You MUST pass the function the correct kind of pointer.

  ExposedVars[VarCount].Ptr = NewVarPtr;

Storing a pointer to itself in the struct is silly. If you have the struct instance, because it is the nth element in the array, then you don't need a pointer to the instance. In the GetVarRef() method, you could simply return the index to the instance in the array.

Speaking of GetVarRef(),

float * GetVarRef(char VarName[]){                         // function to lookup names and return a pointer to the apropriate variable

     return ExposedVars[iLoopCount].Ptr;

The thing that you made Ptr point to is NOT a float, so Ptr is not a pointer to float, so this function is returning the wrong kind of thing, performing a cast that may not always do what you expect.

As Nick points out, nothing in what you are doing requires pointers at all. The array that you have is all that you need. Return the index into the array where that is appropriate. Access the data in the array instances by index.