Devcpp
nico
-
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
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
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);
essaie scanf("%d",val2);
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
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
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
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
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();
}
#include<stdio.h>
int main()
{
int* val2;
*val2=1
scanf("%d",val2);
getchar();
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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