Welcome to Code Review!
C or C++
Technically, this could be compiled as both C and C++, were it not for line 28:
Pow_retValPtr = ::Pow(x, i);
The scope resolution operator :: is only defined in C++, compiling this as C doesn't work.
Since I don't know too much about good C++, I'll treat this as if it was a C program as it reads more like C to me. Maybe someone more knowledgeable can add something about C++ in another answer.
uint64
Use typedef instead of #define:
typedef uint64 unsigned long long int;
The name also might cause confusion with the typedef uint64_t found in inttypes.h. Consider using this header directly instead of defining your own type.
Pow()
Why does this function not return the value directly? This way, there wouldn't be the need to allocate memory inside the function and then remember to free it outside the function. If you forget the latter part, some memory will be leaking every time the function is called, which is undesirable. Here's how the function would look:
uint64 Pow (int x, unsigned char n)
{
uint64 retVal = 1;
for (unsigned char i = 1; i <= n; i++)
{
retVal *= x;
}
return retVal;
}
You could also pass a pointer to a result variable as an argument to the function, but that makes the function a bit weird to use. How to do this is left as an exercise for the reader.
Printing
This shouldn't compile without any warnings. Both sum and Pow_retValPtr are/refer to a value of the type uint64/unsigned long long int, but the format %d is used for signed integers. The correct format to use is %llu.
The last printf doesn't end with a line break which looks ugly when the program is run from a terminal:
mindoverflow@pc:~/$ ./a.out
1. Power of 2: 2
...
5. Power of 2: 32
sum of first 5 powers of 2: 62mindoverflow@pc:~/$
mindoverflow@pc:~/$
Please add one!
Variable naming
x and n could be more descriptive. I'd suggest something like this:
uint64 Pow (int base, unsigned char power) ...
void calculateFirstNPowers(int base, unsigned char n)...
In the second case, the N in the function name describes the argument, so I didn't change it.
Pow_retValPtr could also just be renamed to power, as this is descriptive enough in the context IMO, especially, if you change Pow() as described above.
There also is a joke about naming a variable powerptr somewhere here ... :)