compilation erreur

compilation erreur - C++ - Programmation

Marsh Posté le 02-05-2010 à 03:25:05    

hii,
well i'm having a serious pb with some program in C, i have an erreur mesage appearing after execution of the prog;"access violation" :??:  
here's the instructions:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 
 
int lecture(char **tabch,char *ch)
{
        int i;
    printf("donner une chaine\n" );
    ch=(char*)malloc(10);
    gets(ch);
      i=0;
     while(strcmp(ch,"fin" )!=0||i>=0)
     {
 
     *(tabch+i)=ch;
          (ch)=(char*)malloc(10);
 
 
 
      printf("donner une autre chaine\n" );
      gets(ch);
      i++;
        }
        return(i);}
 
 
  void main()
  {
    char **tabch;
    char *ch;
    int x;
    clrscr();
    x=lecture(tabch,ch);
    printf("%d",x);
    getch();
    }

 
i'm in urgent need of help:'(((((((((( plz help
thx any way;)

Reply

Marsh Posté le 02-05-2010 à 03:25:05   

Reply

Marsh Posté le 02-05-2010 à 05:01:15    

Tu sais pas coder, abandonnes la programmation. Déjà i est toujours supérieur à 0 donc boucle infinie, ensuite faire des malloc de 10 c'est plus que crado (si quelqu'un rentre une chaîne plus grande que 10 caractère bim Access Violation), ensuite visiblement tu mets des trucs à tabch + i alors que tu malloc pas ton char ** (bin Access violation) donc ouais je suis un gros débutant en C mais ce code me défonce les yeux [:pingouino]


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 02-05-2010 à 13:10:33    

well, j s8 une debutante as well, mais j vais pas abondonner la programmation!! mayby i'm not having l'encadrement necessaire, but any way, now i have an exam comming nd i need to know max!! j'avou there were som dumb mistakes, i've made somechanges, l'execution marche bien au bedut mais quand tu rentre la 5ém chaine, bin access violation as u say! if u can correct it plz do it nd thnx ;)::
 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
 
 
int lecture(char **tabch,char *ch)
{
        int i;
    printf("donner une chaine\n" );
    ch=(char*)malloc(100);
    gets(ch);
 
      i=0;
     while(strcmp(ch,"fin" )!=0)
     {
          tabch=(char**)malloc(sizeof(char));
     *(tabch+i)=ch;
 
          (ch)=(char*)malloc(sizeof(char));
 
 
 
      printf("donner une autre chaine\n" );
      gets(ch);
      puts(*(tabch+i));
      i++;
        }
        return(i);}
 
 
  void main()
  {
    char **tabch;
    char *ch;
    int x;
    clrscr();
    x=lecture(tabch,ch);
    printf("%d",x);
    getch();
    }

Reply

Marsh Posté le 05-05-2010 à 09:57:23    

Je n'ai pas bien compris ce que tu cherche a faire, mais une chose est sûre tu réinitialise ton tableau tabch a chaque passage dans ta boucle et ça qui pose problème. Essaye de l'initialiser une fois pour toute en dehors de cette boucle ça devrait corriger le problème.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed