Fixed segfault, this is C code not C++

In c you cannot declare a struct twice, they normal way is to do a typedef and when we want to refer to the struct within the struct when use a temporary name.

The segfault was fixed as the String() method didn't return anything so the pointer was assigned a random value.