Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
709 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] stack overflow a la premiere ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] stack overflow a la premiere ligne

n°360789
eraser17
Posté le 14-04-2003 à 19:02:59  profilanswer
 

j'ai un stack overflow a la premiere ligne de mon prog, ca vient d'ou?
 
voila le debut
du code
 
 

Code :
  1. void main ()
  2. {
  3. int p=0,n=1,d1=1,d2=1,i,j;
  4. char nom_data[10];
  5. char nom_data1[10];
  6. char nom_clavier[20]="azerty";
  7. char nom_resultat[20]="result.txt";
  8. struct digram digramme[10000];
  9. struct digram tampon[10000];
  10. struct touche clavier[100];


Message édité par eraser17 le 14-04-2003 à 19:03:10
mood
Publicité
Posté le 14-04-2003 à 19:02:59  profilanswer
 

n°360794
Konar
Posté le 14-04-2003 à 19:10:33  profilanswer
 

c'est koi les taille de tes struct ?

n°360798
eraser17
Posté le 14-04-2003 à 19:11:55  profilanswer
 

Konar a écrit :

c'est koi les taille de tes struct ?


 

Code :
  1. struct digram {
  2. char touche1[10];
  3. char touche2[10];
  4. char a;
  5. char b;
  6. int doigt1;
  7. int doigt2;
  8. int frequence;
  9. float temps;
  10. double distance;
  11. int test1;
  12. int test2;
  13. };
  14. struct touche
  15. {
  16. char caractere;
  17. int main;
  18. int doigt;
  19. int colonne;
  20. int ligne;
  21. int shift;
  22. }


c quasi sur que ca vient de la mais je vois pas comment regler le prob.

n°360805
Konar
Posté le 14-04-2003 à 19:16:58  profilanswer
 

new
(ou malloc)

n°360808
eraser17
Posté le 14-04-2003 à 19:19:49  profilanswer
 

Konar a écrit :

new
(ou malloc)


 
heu comment je fais? j'ai jamais utilisé ca.

n°360818
Konar
Posté le 14-04-2003 à 19:31:25  profilanswer
 

eraser17 a écrit :


 
heu comment je fais? j'ai jamais utilisé ca.


Code :
  1. struct digram *digramme = (struct digram*)malloc(10000 * sizeof (struct digram));


n°360822
eraser17
Posté le 14-04-2003 à 19:32:24  profilanswer
 

ok merci  :jap:

n°360839
SquiZZ
Posté le 14-04-2003 à 19:43:58  profilanswer
 

Attention, faut pas oublier de tester le pointeur retourné par malloc, si il vaut NULL c'est que le malloc a échoué.
il faut aussi libérer la mémoire à la fin du programme avec free().

n°360864
noldor
Rockn'roll
Posté le 14-04-2003 à 20:19:26  profilanswer
 

question de super newbie en C : avec l'allocation dynamique ça va marcher alors que ça marche pas en statique c est ça ? pourquoi exactement ?


---------------
http://runnerstats.net
n°360953
kenshiro18​2
Posté le 14-04-2003 à 21:43:13  profilanswer
 

noldor a écrit :

question de super newbie en C : avec l'allocation dynamique ça va marcher alors que ça marche pas en statique c est ça ? pourquoi exactement ?


Parce qu'un programme doit avoir une taille de pile déterminée à l'avance (l'espace d'adressage est limité).
Au moins avec l'allocation sur le tas, tu sais quand ça échoue. Quand tu as un dépassement sur la pile, ça fait boom.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] stack overflow a la premiere ligne

 

Sujets relatifs
balise <div> : overflow:autopetit pb avec retours à la ligne sous windows ou linux
[C#] - Retour à la ligne dans une textbox[PHP & HTML] TextArea : où sont les sauts de ligne ?
[Borland C++ 4.5] Lancer une compil en ligne de commandeEvenement clavier dans une appli en ligne de commande
Lancer une désinstalle à partir de la ligne de commande ?Entrée clavier avec PHP en ligne de commande ?
[Visual C++] prog en ligne de commande avec interface visuelle option[HTML,CSS] Ligne verticale...
Plus de sujets relatifs à : [C] stack overflow a la premiere ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR