Ne pas utiliser les pointeur cause probleme à long terme
Fermé
yassalam
-
Modifié par baladur13 le 6/07/2014 à 09:38
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 7 juil. 2014 à 17:56
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 7 juil. 2014 à 17:56
A voir également:
- Ne pas utiliser les pointeur cause probleme à long terme
- Pc long a demarrer - Guide
- Utiliser chromecast - Guide
- Comment utiliser l'ia - Accueil - Guide Intelligence artificielle
- Utiliser iphone comme webcam - Guide
- Comment utiliser utorrent - Télécharger - Téléchargement & Transfert
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
6 juil. 2014 à 11:50
6 juil. 2014 à 11:50
Bonjour,
ce que je veux savoir est ce que mon programme peut avoir des problemes apres plusieurs utilisations à cause des pointeurs.
Ben, si tu n'utilises pas de pointeurs, comment veux-tu avoir des problèmes à cause des pointeurs ? Aucun risque...
Ton programme doit vraiment être simple pour ne pas avoir besoin d'en utiliser. Je te conseille d'apprendre à les utiliser car leur utilisation est incontournable dès que le programme se complexifie. Un petit tuto : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15417-a-lassaut-des-pointeurs
Cdlt,
ce que je veux savoir est ce que mon programme peut avoir des problemes apres plusieurs utilisations à cause des pointeurs.
Ben, si tu n'utilises pas de pointeurs, comment veux-tu avoir des problèmes à cause des pointeurs ? Aucun risque...
Ton programme doit vraiment être simple pour ne pas avoir besoin d'en utiliser. Je te conseille d'apprendre à les utiliser car leur utilisation est incontournable dès que le programme se complexifie. Un petit tuto : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15417-a-lassaut-des-pointeurs
Cdlt,
c'est un jeu pas très complex genre un joueur qui marche et qui ne doit pas faire des collisions avec le décor ou avec les énemies
ce que je veux savoir si un programme necessite un pointeur le programme ne s'exécute jamais jusqu'à l'utilisation du pointeur
et dans mon cas comme mon programme s'exécute donc il n'a pas besoin de pointeur et n'aura jamais de problème puisque il s'est exécuté une fois
car j'ai lu une fois et si j'ai bien compris que parfois quand on utilise directement une variable et pas son adresse ou pointeur la variable peut parfois contenir n'importe quoi selon ce qu'il y'avait dans la case memoire d'un tel PC
je ne sais pas si vous me comprener ou je dis des betises .
ce que je veux savoir si un programme necessite un pointeur le programme ne s'exécute jamais jusqu'à l'utilisation du pointeur
et dans mon cas comme mon programme s'exécute donc il n'a pas besoin de pointeur et n'aura jamais de problème puisque il s'est exécuté une fois
car j'ai lu une fois et si j'ai bien compris que parfois quand on utilise directement une variable et pas son adresse ou pointeur la variable peut parfois contenir n'importe quoi selon ce qu'il y'avait dans la case memoire d'un tel PC
je ne sais pas si vous me comprener ou je dis des betises .
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
6 juil. 2014 à 17:07
6 juil. 2014 à 17:07
c'est un jeu pas très complex genre un joueur qui marche et qui ne doit pas faire des collisions avec le décor ou avec les énemies
Ca m'étonnerait que tu aies un programme de ce genre sans pointeur...
Ton explication n'est pas très claire.
Dis-toi bien qu'un programme c'est "bête". Il s'exécute jusqu'à rencontrer une erreur (pointeur ou pas). L'erreur que tu as lue est fausse. Ou alors tu as mal saisi.
Ou alors, donne un exemple qu'on comprenne mieux.
Ca m'étonnerait que tu aies un programme de ce genre sans pointeur...
Ton explication n'est pas très claire.
Dis-toi bien qu'un programme c'est "bête". Il s'exécute jusqu'à rencontrer une erreur (pointeur ou pas). L'erreur que tu as lue est fausse. Ou alors tu as mal saisi.
Ou alors, donne un exemple qu'on comprenne mieux.
merci pour vos réponses immédiates et en ce qui concerne l'exemple que j'ai donné peut etre que j'ai confondu avec autre chose vraiment j'ai besoin de bien comprendre les pointeurs
je viens de revoir le code de mon jeu que j'ai fait il y'a un an et j'ai vu quelque pointeurs que j'ai mis betement
et d'après vos réponses j'ai compris que si je ne met pas de pointeur ou il fallait le mettre le programme ne s'executra pas comme le cas ou j'oublie un point virgule et c'est ce que je voulais savoir mais cela n'empeche que je dois comprende le fonctionement des pointeurs
merci pour le tuto
je viens de revoir le code de mon jeu que j'ai fait il y'a un an et j'ai vu quelque pointeurs que j'ai mis betement
et d'après vos réponses j'ai compris que si je ne met pas de pointeur ou il fallait le mettre le programme ne s'executra pas comme le cas ou j'oublie un point virgule et c'est ce que je voulais savoir mais cela n'empeche que je dois comprende le fonctionement des pointeurs
merci pour le tuto
Merci pour vos réponses immédiates et en ce qui concerne l'exemple que j'ai donné peut etre que j'ai confondu avec autre chose vraiment j'ai besoin de bien comprendre les pointeurs
je viens de revoir le code de mon jeu que j'ai fait il y'a un an et j'ai vu quelque pointeurs que j'ai mis betement
et d'après vos réponses j'ai compris que si je ne met pas de pointeur ou il fallait le mettre le programme ne s'executra pas comme le cas ou j'oublie un point virgule et c'est ce que je voulais savoir mais cela n'empeche que je dois comprende le fonctionement des pointeurs
Merci pour le tuto
je viens de revoir le code de mon jeu que j'ai fait il y'a un an et j'ai vu quelque pointeurs que j'ai mis betement
et d'après vos réponses j'ai compris que si je ne met pas de pointeur ou il fallait le mettre le programme ne s'executra pas comme le cas ou j'oublie un point virgule et c'est ce que je voulais savoir mais cela n'empeche que je dois comprende le fonctionement des pointeurs
Merci pour le tuto
salut,
pointeur ou pas, les problèmes seront vis à vis des allocations.
Pour faire court (fouttez moi si je me trompe), le pointeur n'est qu'une adresse qui indique l'emplacement du premier élément de ta variable. Donc, passer par les pointeur ou pas, les modifications seront toujours sur la variable (pointée par ou non ... je parle bien sûr des algo qui sont dans la portée de la déclaration) => l'avantage du pointeur, c'est que tu peux passer les adresses en paramètre dans tes fonctions afin de travailler "réellement" sur la valeur (la source sera donc modifiée), tandis que le fait de ne passer que la variable apportera une copie de ton élément source (qui ne sera donc pas modifiée). C'est assez grossier comme explication mais ca donne une idée du principe.
naga
pointeur ou pas, les problèmes seront vis à vis des allocations.
Pour faire court (fouttez moi si je me trompe), le pointeur n'est qu'une adresse qui indique l'emplacement du premier élément de ta variable. Donc, passer par les pointeur ou pas, les modifications seront toujours sur la variable (pointée par ou non ... je parle bien sûr des algo qui sont dans la portée de la déclaration) => l'avantage du pointeur, c'est que tu peux passer les adresses en paramètre dans tes fonctions afin de travailler "réellement" sur la valeur (la source sera donc modifiée), tandis que le fait de ne passer que la variable apportera une copie de ton élément source (qui ne sera donc pas modifiée). C'est assez grossier comme explication mais ca donne une idée du principe.
naga
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
7 juil. 2014 à 16:21
7 juil. 2014 à 16:21
@nagashima
Petite précision.
le pointeur n'est qu'une adresse qui indique l'emplacement du premier élément de ta variable
Qui indique l'emplacement d'une zone mémoire (pas du premier élément).
@yassalam
En plus des explications de nagashima, ce qu'il faut voir aussi c'est qu'il n'est pas possible d'envoyer un tableau en paramètre, on ne peut passer que par le pointeur. C'est pour ça que je disais, entre autres, que les pointeurs sont nécessaires dès qu'un programme se complexifie.
Petite précision.
le pointeur n'est qu'une adresse qui indique l'emplacement du premier élément de ta variable
Qui indique l'emplacement d'une zone mémoire (pas du premier élément).
@yassalam
En plus des explications de nagashima, ce qu'il faut voir aussi c'est qu'il n'est pas possible d'envoyer un tableau en paramètre, on ne peut passer que par le pointeur. C'est pour ça que je disais, entre autres, que les pointeurs sont nécessaires dès qu'un programme se complexifie.
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 7/07/2014 à 17:02
Modifié par [Dal] le 7/07/2014 à 17:02
Salut yassalam ,
tu écris :
d'après vos réponses j'ai compris que si je ne met pas de pointeur ou il fallait le mettre le programme ne s'executra pas comme le cas ou j'oublie un point virgule et c'est ce que je voulais savoir
Si tu oublies un point virgule en fin d'une ligne, ton code source ne compilera pas, car tu auras commis une erreur de syntaxe.
C'est un type d'erreur différent du cas où tu utilises autre chose qu'un pointeur là où un pointeur est attendu par le programme. Cela ne sera pas une erreur de syntaxe, et ton code compilera, avec un warning (si tu as activé les warnings), ou compilera sans rien te dire si tu compiles sans warnings (le C considère que tu es assez grand pour savoir ce que tu fais).
Considère le code suivant :
moralité : compile toujours avec les warnings, et comprend et neutralise chacun d'eux.
Dal
P.S. : Le warning ci-dessus est produit par mon compilateur gcc en compilant avec l'option -Wall
tu écris :
d'après vos réponses j'ai compris que si je ne met pas de pointeur ou il fallait le mettre le programme ne s'executra pas comme le cas ou j'oublie un point virgule et c'est ce que je voulais savoir
Si tu oublies un point virgule en fin d'une ligne, ton code source ne compilera pas, car tu auras commis une erreur de syntaxe.
C'est un type d'erreur différent du cas où tu utilises autre chose qu'un pointeur là où un pointeur est attendu par le programme. Cela ne sera pas une erreur de syntaxe, et ton code compilera, avec un warning (si tu as activé les warnings), ou compilera sans rien te dire si tu compiles sans warnings (le C considère que tu es assez grand pour savoir ce que tu fais).
Considère le code suivant :
#include <stdio.h> int main(void) { int n = 0; /* Erreur volontaire : * au lieu de passer un pointeur vers n, c'est à dire &n * je passe n, c'est à dire le contenu de * la variable n */ scanf("%d", n); /* La compilation avec warnings avertit : * " warning: format '%d' expects argument of type 'int *', * but argument 2 has type 'int' " * mais le programme compile. * A l'exécution, en revanche une "Erreur de segmentation" * se produit, car je tente d'accéder à l'emplacement * mémoire situé à l'adresse 0, qui n'est pas alloué * par le programme */ return 0; }
moralité : compile toujours avec les warnings, et comprend et neutralise chacun d'eux.
Dal
P.S. : Le warning ci-dessus est produit par mon compilateur gcc en compilant avec l'option -Wall
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
7 juil. 2014 à 17:00
7 juil. 2014 à 17:00
Le compilateur "Fiddy" précise même qu'il y aura un autre warning :-p (non-utilisation de la variable n) :-).