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
Bonjour,

j'ai pas utiliser de pointeur dans mon progr
amme et je n'ai pas d'ereurs et le programme fonctionne bien .

ce que je veux savoir est ce que mon programme peut avoir des problemes apres plusieurs utilisations à cause des pointeurs.

remarque
je n'utilise pas les pointeurs car je ne les comprend pas bien et puisque mon programme s'éxecute j'ai laisser tomber les pointeurs
S'il vous plait... Merci d'avance..!?
A voir également:

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
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,
0
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 .
0
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
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.
0
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
0
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
0
Utilisateur anonyme
7 juil. 2014 à 16:08
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
0
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
@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.
0
Utilisateur anonyme
7 juil. 2014 à 16:34
oui j'ai peu être un peu trop vulgarisé ^^ bon du coup un simple coup de martinet suffira =p
0
[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
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 :

#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
0
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
Le compilateur "Fiddy" précise même qu'il y aura un autre warning :-p (non-utilisation de la variable n) :-).
0