Question programmation en C
Résolu/Fermé
Carbon202
Messages postés
4
Date d'inscription
vendredi 6 janvier 2012
Statut
Membre
Dernière intervention
7 janvier 2012
-
Modifié par Carbon202 le 7/01/2012 à 22:24
Carbon202 Messages postés 4 Date d'inscription vendredi 6 janvier 2012 Statut Membre Dernière intervention 7 janvier 2012 - 7 janv. 2012 à 23:25
Carbon202 Messages postés 4 Date d'inscription vendredi 6 janvier 2012 Statut Membre Dernière intervention 7 janvier 2012 - 7 janv. 2012 à 23:25
A voir également:
- Question programmation en C
- Application de programmation - Guide
- Programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Mettre en veille un programme - Guide
4 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
7 janv. 2012 à 22:28
7 janv. 2012 à 22:28
oui, c'est possible
peu de choses sont impossibles en C.
mais tu n'as qu'à faire l'essai toi-même, c'est un bon entrainement de codage.
quelques lignes de code et tu auras ta réponse ;)
peu de choses sont impossibles en C.
mais tu n'as qu'à faire l'essai toi-même, c'est un bon entrainement de codage.
quelques lignes de code et tu auras ta réponse ;)
Carbon202
Messages postés
4
Date d'inscription
vendredi 6 janvier 2012
Statut
Membre
Dernière intervention
7 janvier 2012
7 janv. 2012 à 22:33
7 janv. 2012 à 22:33
Ben merci, :p Bonne soirée !
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
Modifié par Pacorabanix le 7/01/2012 à 22:35
Modifié par Pacorabanix le 7/01/2012 à 22:35
une petite précision tout de même.
Tu dis :
"de modifier une variable d'une autre fonction déjà existante"
disons que la fonction qui modifie s'appelle modif() et la fonction deja existante s'appelle exist() (avec des paramètres, mais là je m'en fiche)
si ton main() ressemble à ça :
il faut que tu comprennes qu'il n'y aura pas de variable de la fonction exist() en mémoire.
je ne sais pas comment tu pourrais te débrouiller, mais si tu arrives à faire un pointeur sur une variable de exist(), et que tu essayes d'utiliser ce pointeur dans modif(), tu auras un crash de ton programme.
ce que tu dis ne serait possible que si la fonction exist() appelle dans son corps la fonction modif() : ainsi les variables de la fonction exist() sont encore en mémoire car elle n'est pas terminée.
Tu dis :
"de modifier une variable d'une autre fonction déjà existante"
disons que la fonction qui modifie s'appelle modif() et la fonction deja existante s'appelle exist() (avec des paramètres, mais là je m'en fiche)
si ton main() ressemble à ça :
int main() { exist() modif() }
il faut que tu comprennes qu'il n'y aura pas de variable de la fonction exist() en mémoire.
je ne sais pas comment tu pourrais te débrouiller, mais si tu arrives à faire un pointeur sur une variable de exist(), et que tu essayes d'utiliser ce pointeur dans modif(), tu auras un crash de ton programme.
ce que tu dis ne serait possible que si la fonction exist() appelle dans son corps la fonction modif() : ainsi les variables de la fonction exist() sont encore en mémoire car elle n'est pas terminée.
int main() { exist() } void exist() { modif() }
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
7 janv. 2012 à 22:36
7 janv. 2012 à 22:36
pour que des variables survivent après la fin d'une fonction, il faut allouer leur mémoire *dynamiquement* (avec malloc), mais je ne pense pas que tu as vu ça déjà.
Carbon202
Messages postés
4
Date d'inscription
vendredi 6 janvier 2012
Statut
Membre
Dernière intervention
7 janvier 2012
7 janv. 2012 à 22:52
7 janv. 2012 à 22:52
Ma fonction déjà existant appelle ma fonction "modificatrice" puis que c'est ma fonction main qui appelle une autre fonction, j'aurais peut être du le préciser ! Et en effet je n'ai pas encore vu les allocations de mémoire dynamique ! MDR
Carbon202
Messages postés
4
Date d'inscription
vendredi 6 janvier 2012
Statut
Membre
Dernière intervention
7 janvier 2012
Modifié par Carbon202 le 7/01/2012 à 23:25
Modifié par Carbon202 le 7/01/2012 à 23:25
Finalement j'ai fais ça autrement j'ai tout inclus dans ma fonction modificatrice !