I need to make this work on Dev C++ and Visual Studio, but the string in function returns correctly only in GCC. I really don't know where is the error.
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>
#include <locale.h>
char* get_valid_string(char *string) {
  bool valid = false;
  char name[80];
  while (valid != true) {
      printf(" %s", string);
      fgets(name, sizeof(name), stdin);
      printf(" %s", name);
      char *valid_string = name;
      return valid_string;
   }
}
int main() {
  setlocale(LC_ALL, "Portuguese");
  char *title;
  char *string = "Title: ";
  title = get_valid_string(string);
  printf("%s", title);
system("PAUSE");
}
 
    