>>884 の方法でもいいけれど、
そもそもMemoryNewScore関数内で
char newstr[100]; とローカル変数を用意する必要がないのでは。
sprintf(str,"%d\t\t%s\n",score, ctime(&t));
}
じゃいかんのか、と。

もちろん
static char newstr[100];
でもできるけれども、出力引数を使い、データを格納する領域は
関数呼び出し元が確保しておくのが自然のような気がする。