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

8 réponses

SebManfred Messages postés 484 Statut Membre 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
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
SebManfred Messages postés 484 Statut Membre 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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SebManfred Messages postés 484 Statut Membre 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
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
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
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