I have no idea what im doing here since i rarely use "char". But pretty much im just trying to get the data from that memory address into a string variable. (The actual address is different from all zero's)
If "datakey.race1" is an array then you shouldn't have to pass it by reference. This function only needs a pointer that is cast to void, not a pointer to a pointer.
@ andywestken: Yeah, it would mean the OP is passing the pointer to the pointer of the beginning of the array. Did I write that wrong? It's one of those things I have trouble putting into words. The OP still needs to delete it right?
I don't think delete is needed here. ReadProcessMemory will copy into the memory provided (the 3 bytes in the race1 array) if the & is lost (or &datakey.race1[0] is used)
But I think you're right that the address is needed rather than the address of the address.