begin process at 2012 02 11 22:49:12
  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 comment Recupérer Variables d'une fonction ? [ par baptchr55 ] Bonjour à tous. Voilà, j'ai un problème, je cherche à récupèrer mes valeurs x,y,z dans le main... je ne sais pas comment faire... Quelqu'un peut-il m 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,622 sec (3)

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