[C++] Gestion de chaines de caractere.Pointeur de pointeur

Gestion de chaines de caractere.Pointeur de pointeur [C++] - C++ - Programmation

Marsh Posté le 01-01-2008 à 17:05:34    

Salut à tous,
 
Voici mon probleme... j'ai ecrit un programme de gestion de chaine de caractere ( ou j'essaie...) j'en suis à la saisie d'une chaine par un utilisateur.
 
Un tableau de pointeur contient les pointeurs vers chaque chaine de caractere.
 
L'allocation de memoire est dynamique en fonction de la saisie de l'utilisateur.
 
Il y a un element supplementaire: Le tableau de pointeur doit comporter un nombre d'elements multiple de 5, c'est a dire que si l'utilisateur ajoute une chaine de caractere a un tableau comportant deja 5 elements, la fonction va affecter au tableau 10 elements.
 
 
voicimon code :
 

Code :
  1. 1.
  2.       #include <iostream>
  3.       #include <cstring>
  4.       using namespace std;
  5.       int main()
  6.       {
  7.       char A[50],**VEC,**TMP;
  8.       int x,menu,nombre=0;
  9.       VEC=new char*[5];
  10.       while (1)
  11.       {
  12.               cin>>menu;
  13.               switch (menu)
  14.               {
  15.               case 1:cin>>A;
  16.                       char **TMP;
  17.               if (nombre%5==0 && nombre!=0)
  18.               {
  19.                       TMP=new char*[nombre+5];
  20.                       for (int i=0;i<nombre;i++)
  21.                               *(TMP+i)=*(VEC+i);
  22.                       delete[] VEC;
  23.                       VEC=TMP;
  24.               }
  25.               *VEC=new char[strlen(A)+1];
  26.               strcpy(*(VEC+nombre),A);
  27.               nombre++;
  28.               for (int i=0;i<nombre;i++)
  29.                       cout<<*(VEC+nombre);
  30.                       break;
  31.               case 2://delete_string(VEC,nombre);
  32.                       break;
  33.               case 3://search(VEC,nombre);
  34.                       break;
  35.               case 4://print_spec(VEC,nombre);
  36.                       break;
  37.               case 5://print_all(VEC,nombre);
  38.                       break;
  39.               default:return 0;
  40.               }
  41.       }
  42.       return 0;
  43.       }


 
 
Mon probleme se situe au niveau de l'affichage des elements existants par cout... Cela me donne une erreur du type Access violation reading location.
 
Quel est le probleme ?
 
Et si vous avez des suggestions sur le code n'ehesitez pas :P


Message édité par elyahou le 01-01-2008 à 17:09:04
Reply

Marsh Posté le 01-01-2008 à 17:05:34   

Reply

Marsh Posté le 01-01-2008 à 18:14:50    

std::string

Reply

Marsh Posté le 02-01-2008 à 12:20:18    

J'ai oublié de preciser que je ne peut utiliser std::string...

Reply

Marsh Posté le 02-01-2008 à 13:36:57    

elyahou a écrit :

J'ai oublié de preciser que je ne peut utiliser std::string...


Encore un TP de merde , c'est la saison :o

Reply

Sujets relatifs:

Leave a Replay

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