Devcpp

nico -  
 nico -
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. SebManfred Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   128
     
    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);
    0
  2. nico
     
    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
    0
  3. SebManfred Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   128
     
    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
    0
  4. nico
     
    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();
    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. SebManfred Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   128
     
    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
    0
  7. nico
     
    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
    0
  8. nico
     
    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
    0
  9. nico
     
    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
    0