Accueil > Forum > > > > erreur memoire
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
Livres en rapport
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
ERREUR DE POINTEURERREUR DE POINTEUR par africanwinners
Cliquez pour lire la suite par africanwinners CLISTCTRLCLISTCTRL par dorras7
Cliquez pour lire la suite par dorras7
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|