Devcpp

Bonjour,
j'ai une question bete
j'arrive à compiler mon programme sur devcpp
mais à l'execution la fenetre s'affiche puis se ferme directement ce qui fait que je ne vois rien

#include<stdio.h>
#include "var.c"
#include "windows.h"

int main()
{
int val=1;
bool bp=TRUE;
int val1=23;
int* val2;
int* val3;
int i;
int* val4;
*val2=val;
*val3=bp;
*val4=val1;
printf("%d %d %f",*val2,*val3,*val4);
scanf("%d",*val2);
getchar();
system("PAUSE");
for( i=0;i<7000;i++)
{
Sleep(100);
}
return 0;
}

j'ai essayé plusieurs truc mais ca fait rien du tout
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. si quelqu'un savait comment faire pour que des pointeurs d'entiers des pointeurs de reel et des pointeurs de booleen soit les uns à la suite des autres tous ensemble ca serait bien car là je suis à court d'idée
    1. en tout cas merci ca marche

      sinon pourquoi j'ai pas pensé à faire des malloc
      tout simplement car je les mes variables dans un fichier
      dans le fichier y'a ca

      int val=1;
      bool bp=TRUE;
      float* val1=23.1;

      après c'est débrouille toi pour mettre les adresses des pointeurs dans le fichier
      1. pourquoi je fais un scanf ou un getchar
        tout simplement car si je fais pas ca je ne vois aps si ca s'affiche
        faut vraiment que je reprenne mes cours de C moi
        ca fait deux ans que je fais du java et du C++

        honte à moi
        1. pourquoi tu fais un scanf et un getchar (qui entre nous ne stocke rien et donc ne sert à rien)?
          sinon, tu as déclaré un pointeur, qui va recevoir une adresse
          tu n'as pas initialisé ton pointeur, et donc, tu veux faire renter une valeur dans une adresse qui n'existe pas
          int* val2;
          *val2 = 1;
          point de vue mémoire, ça ne peut pas marcher.
          déclare val2 comme un int ou fais un val2 = (int*)malloc(sizeof(int)); avant de faire ton *val2 = 1;, sans oublier de faire un free(val2) à la fin de ton programme
          1. bon j'ai simplifié au max le programme et ca fait toujours la même chose

            #include<stdio.h>

            int main()
            {
            int* val2;
            *val2=1
            scanf("%d",val2);
            getchar();
            }
            1. ton printf, pour val4, tu fais référence à un int mais tu mets %f, comme float...
              de plus, tu fais rentrer un booleen dans un int (mais ça, ça ne devrait pas faire planter)
              et ton getchar ne te sert à rien, surtout que c'est la seule fonction C++ de ton programme, tout le reste est en c
              1. je l'ai fais aussi
                je pensais aussi que c'étais le scanf mais ca fait rien du tout
                je l'ai même mis en commentaires mais c'est toujours la même chose
                1. c'est ton scanf qui pose problème. il est sensé prendre en paramètre un pointeur ou une adresse et toi tu lui envoie le contenu de l'adresse pointée par val2 (donc une valeur). forcément ça plante et la suite de ton programme ne s'exécute pas.
                  essaie scanf("%d",val2);