Your compiler is right, converting an int to a string is bad stuff unless you do it properly. Now, assuming that strFinal is where you want the number put and it's already waiting, this should work for you :-)
Code:
char *toString(const Node p)
{
sprintf(strFinal, "%d", p.value);
return strFinal;
}
And you really should consider passing p as a pointer, it's more efficient that way and the changes are minimal
Code:
char *toString(const Node *p)
{
sprintf(strFinal, "%d", p->value);
return strFinal;
}