Вы объявляете массив указателей, а не массив символов (обычно используется как строка).
Вы должны объявить так:
char sPPhase[51];
Кроме того, sscanf может доставить вам неприятности: лучше использовать fgets для чтения строки в ограниченном буфере:
int main() {
char sPPhrase[51];
printf("Enter string (max. 50 chars):\n");
fflush(stdout);
fgets(sPPhrase, 50, stdin); // leave one byte for '\0'
// More code
}
Я не знаю, что делает «реверс», но вы, вероятно, должны определить это как:
char* reverse(char* sPPhrase);
Если он выполняет операцию на месте, вам даже не нужно возвращаемое значение. Если вы это сделаете, не забудьте освободить его, когда вы закончите.