Je ne suis pas sûr de ce qui se passe avec mon programme, mais j'ai essentiellement une fonction qui essaie de lire un tas de chaînes à partir d'un fichier et le passe en mode principal pour un traitement ultérieur. Voici mon code:Valeur indésirable de chaîne utilisant C
char* readFile(FILE* fpFile)
{
// Local Declaration
char *ptr;
char temp[1000];
// Statment
fgets(temp, sizeof(temp), fpFile);
ptr = temp;
return ptr;
}// readFile
Le problème se produit lorsque la fonction repasse le pointeur sur principal. J'ai essayé d'imprimer la chaîne, mais je ne reçois que les premières lignes correctes et après c'est indésirable. En outre, si je devais imprimer ptr
dans la fonction readFile
il imprime parfaitement bien et le pointeur qui est passé à la principale imprime également. Y a-t-il quelque chose qui me manque? Toute aide serait appréciée.
est ici la sortie je reçois
2000 1990
New York-No. NJ; 21199865 19549649
Los Angeles area; 16373645 14531629
Chicago area; 9157540 8239820
Washington-Baltimore; 7608070 6727050
San Francisco area; 7039362 6253311
Philadelphia-Atlantic City area; 6188463 5892937
Boston\240\365\277_\377
Il est censé être deux fois plus d'entrées, mais il est stoping comme un quart du chemin.
OH NO! Vous feriez mieux de jeter un oeil à: http://stackoverflow.com/questions/4824342/returning-a-local-variable-from-function-in-c – Mikhail