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.
- #include <iostream>
- #include <cstring>
- using namespace std;
- int main()
- {
- char A[50],**VEC,**TMP;
- int x,menu,nombre=0;
- VEC=new char*[5];
- while (1)
- {
- cin>>menu;
- switch (menu)
- {
- case 1:cin>>A;
- char **TMP;
- if (nombre%5==0 && nombre!=0)
- {
- TMP=new char*[nombre+5];
- for (int i=0;i<nombre;i++)
- *(TMP+i)=*(VEC+i);
- delete[] VEC;
- VEC=TMP;
- }
- *VEC=new char[strlen(A)+1];
- strcpy(*(VEC+nombre),A);
- nombre++;
- for (int i=0;i<nombre;i++)
- cout<<*(VEC+nombre);
- break;
- case 2://delete_string(VEC,nombre);
- break;
- case 3://search(VEC,nombre);
- break;
- case 4://print_spec(VEC,nombre);
- break;
- case 5://print_all(VEC,nombre);
- break;
- default:return 0;
- }
- }
- return 0;
- }
|
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
Message édité par elyahou le 01-01-2008 à 17:09:04