begin process at 2010 03 20 08:34:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

erreur memoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

erreur memoire

mardi 2 avril 2002 à 12:44:39 | erreur memoire

Xs

alors voila, j'ai jamais vu ca.

je lance mon programme. normal. puis je clique sur le bouton generer et là, pouf !
un message d'erreur. alors, celui la, c'en est un specimen !!!!!

levoila :

"l'instruction a "0x00403fda" emploie l'adresse mémoire "0x0000000". la memoire ne peut pas etre "written".

appuyez sur OK pour quitter
appuyez sur Annulez pour deboguer".

vala, il est joli, hein ? surtout l'adresse "0x0000000"...

n'empeche que je sais pas comment on resoud ca et d'ou ca vient ?

mon code :

#include <stdAfx.h>
#include <windows.h>
#include <commctrl.h>
#include <time.h>
#include <stdlib.h>
#include "resource.h"


int k1,k2,k3,k4;
char *buffer,*buffer1,*buffer2,*buffer3;


LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
int nCmdShow;
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hDlg);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case ID_GEN:

srand((unsigned) time(NULL));
k2 = rand() % 99999;

srand((unsigned) time(NULL));
k4 = rand() % 99999;

srand((unsigned) time(NULL));
k1 = rand() % 9999;

k3 = (k2-k4)+k1;

itoa(k1,buffer,10);
itoa(k2,buffer1,10);
itoa(k3,buffer2,10);
itoa(k4,buffer3,10);

SetDlgItemText(hDlg,IDC_K1,buffer);
SetDlgItemText(hDlg,IDC_K2,buffer1);
SetDlgItemText(hDlg,IDC_K3,buffer2);
SetDlgItemText(hDlg,IDC_K4,buffer3);

break;
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
}
break;
default:
return FALSE;
}
return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hdlg;
MSG Msg;

hdlg = CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC) DlgProc);

if(hdlg == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hdlg, nCmdShow);
UpdateWindow(hdlg);

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
mercredi 3 avril 2002 à 20:39:27 | Re : erreur memoire

Kaid


A priori tu as mis un NULL quelque part où il fallait un pointeur valide (d'où l'adresse 0x0000000).

Si tu bosses sous VC++, le mieux est de compiler le prog en mode Debug et de lancer le programme sous le debugger.


-------------------------------
Réponse au message :
-------------------------------

alors voila, j'ai jamais vu ca.

je lance mon programme. normal. puis je clique sur le bouton generer et là, pouf !
un message d'erreur. alors, celui la, c'en est un specimen !!!!!

levoila :

"l'instruction a "0x00403fda" emploie l'adresse mémoire "0x0000000". la memoire ne peut pas etre "written".

appuyez sur OK pour quitter
appuyez sur Annulez pour deboguer".

vala, il est joli, hein ? surtout l'adresse "0x0000000"...

n'empeche que je sais pas comment on resoud ca et d'ou ca vient ?

mon code :

#include <stdAfx.h>
#include <windows.h>
#include <commctrl.h>
#include <time.h>
#include <stdlib.h>
#include "resource.h"


int k1,k2,k3,k4;
char *buffer,*buffer1,*buffer2,*buffer3;


LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
int nCmdShow;
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hDlg);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case ID_GEN:

srand((unsigned) time(NULL));
k2 = rand() % 99999;

srand((unsigned) time(NULL));
k4 = rand() % 99999;

srand((unsigned) time(NULL));
k1 = rand() % 9999;

k3 = (k2-k4)+k1;

itoa(k1,buffer,10);
itoa(k2,buffer1,10);
itoa(k3,buffer2,10);
itoa(k4,buffer3,10);

SetDlgItemText(hDlg,IDC_K1,buffer);
SetDlgItemText(hDlg,IDC_K2,buffer1);
SetDlgItemText(hDlg,IDC_K3,buffer2);
SetDlgItemText(hDlg,IDC_K4,buffer3);

break;
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
}
break;
default:
return FALSE;
}
return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hdlg;
MSG Msg;

hdlg = CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC) DlgProc);

if(hdlg == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hdlg, nCmdShow);
UpdateWindow(hdlg);

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}

lundi 22 juillet 2002 à 20:19:17 | Re : erreur memoire

st1

ton erreur peut venir de la fonction atoi, mais le plus simple pour le savoir c'est encore de faire un debuf step by step



-------------------------------
Réponse au message :
-------------------------------


A priori tu as mis un NULL quelque part où il fallait un pointeur valide (d'où l'adresse 0x0000000).

Si tu bosses sous VC++, le mieux est de compiler le prog en mode Debug et de lancer le programme sous le debugger.


-------------------------------
Réponse au message :
-------------------------------

alors voila, j'ai jamais vu ca.

je lance mon programme. normal. puis je clique sur le bouton generer et là, pouf !
un message d'erreur. alors, celui la, c'en est un specimen !!!!!

levoila :

"l'instruction a "0x00403fda" emploie l'adresse mémoire "0x0000000". la memoire ne peut pas etre "written".

appuyez sur OK pour quitter
appuyez sur Annulez pour deboguer".

vala, il est joli, hein ? surtout l'adresse "0x0000000"...

n'empeche que je sais pas comment on resoud ca et d'ou ca vient ?

mon code :

#include <stdAfx.h>
#include <windows.h>
#include <commctrl.h>
#include <time.h>
#include <stdlib.h>
#include "resource.h"


int k1,k2,k3,k4;
char *buffer,*buffer1,*buffer2,*buffer3;


LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
int nCmdShow;
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hDlg);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case ID_GEN:

srand((unsigned) time(NULL));
k2 = rand() % 99999;

srand((unsigned) time(NULL));
k4 = rand() % 99999;

srand((unsigned) time(NULL));
k1 = rand() % 9999;

k3 = (k2-k4)+k1;

itoa(k1,buffer,10);
itoa(k2,buffer1,10);
itoa(k3,buffer2,10);
itoa(k4,buffer3,10);

SetDlgItemText(hDlg,IDC_K1,buffer);
SetDlgItemText(hDlg,IDC_K2,buffer1);
SetDlgItemText(hDlg,IDC_K3,buffer2);
SetDlgItemText(hDlg,IDC_K4,buffer3);

break;
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
}
break;
default:
return FALSE;
}
return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hdlg;
MSG Msg;

hdlg = CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC) DlgProc);

if(hdlg == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hdlg, nCmdShow);
UpdateWindow(hdlg);

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}


dimanche 27 octobre 2002 à 23:14:04 | Re : erreur memoire

mzhunix

tes pointeurs buffers ne sont pas initialises, il faut leurs allouer la memoire ( malloc ) ou utiliser des tableaux d'environ 20 caract. chacun

Bonne chance!



-------------------------------
Réponse au message :
-------------------------------

ton erreur peut venir de la fonction atoi, mais le plus simple pour le savoir c'est encore de faire un debuf step by step



-------------------------------
Réponse au message :
-------------------------------


A priori tu as mis un NULL quelque part où il fallait un pointeur valide (d'où l'adresse 0x0000000).

Si tu bosses sous VC++, le mieux est de compiler le prog en mode Debug et de lancer le programme sous le debugger.


-------------------------------
Réponse au message :
-------------------------------

alors voila, j'ai jamais vu ca.

je lance mon programme. normal. puis je clique sur le bouton generer et là, pouf !
un message d'erreur. alors, celui la, c'en est un specimen !!!!!

levoila :

"l'instruction a "0x00403fda" emploie l'adresse mémoire "0x0000000". la memoire ne peut pas etre "written".

appuyez sur OK pour quitter
appuyez sur Annulez pour deboguer".

vala, il est joli, hein ? surtout l'adresse "0x0000000"...

n'empeche que je sais pas comment on resoud ca et d'ou ca vient ?

mon code :

#include <stdAfx.h>
#include <windows.h>
#include <commctrl.h>
#include <time.h>
#include <stdlib.h>
#include "resource.h"


int k1,k2,k3,k4;
char *buffer,*buffer1,*buffer2,*buffer3;


LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
int nCmdShow;
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hDlg);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
switch(LOWORD(wParam))
{
case ID_GEN:

srand((unsigned) time(NULL));
k2 = rand() % 99999;

srand((unsigned) time(NULL));
k4 = rand() % 99999;

srand((unsigned) time(NULL));
k1 = rand() % 9999;

k3 = (k2-k4)+k1;

itoa(k1,buffer,10);
itoa(k2,buffer1,10);
itoa(k3,buffer2,10);
itoa(k4,buffer3,10);

SetDlgItemText(hDlg,IDC_K1,buffer);
SetDlgItemText(hDlg,IDC_K2,buffer1);
SetDlgItemText(hDlg,IDC_K3,buffer2);
SetDlgItemText(hDlg,IDC_K4,buffer3);

break;
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
}
break;
default:
return FALSE;
}
return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hdlg;
MSG Msg;

hdlg = CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC) DlgProc);

if(hdlg == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hdlg, nCmdShow);
UpdateWindow(hdlg);

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}





Cette discussion est classée dans : case, include, hdlg, msg, k1


Répondre à ce message

Sujets en rapport avec ce message

touches [ par Xs ] voila, j'ai essayé de tester des touches afin que, par exemple, lorsque l'on appuie sur Y, une message box apparaisse.j'ai recupérer ce code venat de faire progresser....une progress bar !! [ par Xs ] c tout bete, mais je sais pas comment faire. ou plutot lui dire a quoi comparer sa progression par rapport au chargement de quelque chose.mon code : # objet non initialisé (API Win32) [ par Xs ] salut !voici mon code, d'abord :#include #include #include "resource.h"LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){cha positions [ par Xs ] salut ! je cherche et je trouve pas, ou alors je sais pas m'en servir, comment on recupere la position actuelle du fenetre(dialogbox).j'ai essayé des communication par file de message [ par adri85 ] Bonjour,Je débute la programmation sous unix et je souhaite développer une petite application. eLe programme père demande à l'utilisateur dans un dial probleme getch() + touches flechées du clavier [ par smirnoff ice ] Bonjour tout le monde.J'ai un petit souci, je suis débutant en c, et je n'ai pas trouver de solution pour remedier à ce problème.J'aimerai savoir comm CreateDialog est un échec! [ par anthraxx ] j'ai un problème avec CreateDialog :ma boite de dialogue n'a pas de titre et ne peut pas être déplacée, et ne cède pas le focus à des fenêtres filles Evenement touche presse sur edit [ par NairodDorian ] Bonjour,Je rencontre un petit blocage avec l'API Win32.BOOL CALLBACK AppDlg(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam){switch ( Lancement d'un programme via un service [ par laetitiavincent ] Bonjour tout le mondeVoilà mon problème : j'ai fait un petit prog qui, lorsqu'il y a fermeture de session ou de windows, il me lancer une fonction  to Dialog fenetre enfant qui bloque [ par NairodDorian ] Bonjour,Mon probleme est le suivant, j'utilises les resources avec des dialog et je voudrai affiche un dialogue defini par Child dans les proprietes d


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales