Salut!![]()
Supposons que l'on veuille déléguer à une fonction la tâche d'ouverture d'un fichier avec toutes les vérifications qui vont avec:
1)Est-ce "file" se comportera comme n'importe quelle variable locale et donc le renvoyer impliquera un comportement indéterminé?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
 1
2
3
4
5
6 FILE* f(char* path){ ... FILE* file=fopen(path,"r"); ... return file; };
2)De plus est-ce qu'un fichier ouvert dans une fonction le restera à la sortie de la fonction?
Si la réponse à 1) est oui alors est-ce que:
est correct et est-ce que le fichier restera toujours ouvert en dehors de la fonction?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
 1
2
3
4 FILE** file=malloc(sizeof(*file)); *file=fopen(path,"r"); ... return file;
Merci de vos réponses.![]()
		
		
        





  
 


  Répondre avec citation
 
 
 

				

 
 
 ) raison, ce code est pervers parce qu'il retourne l'adresse d'une variable locale !
Partager