Bonjour,

J'ai quelques questions théoriques à propos des tableaux de pointeurs de type char* ainsi que plus généralement les pointeurs char*.
Pour exemple dans cet énoncé simple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
using namespace::std
 
int main()
{
 char* pszArray;
 pszArray = "Developpez";
 cout << &(*pszArray) << endl;
 return 0;
}
Tout dabord je ne comprends pas comment cette chaîne de caractère est crée. Je veux dire, il n'y a pas eu d'allocation dynamique de mémoire, on a absolument rien renseigné et pour en savoir un peu plus j'ai voulu donc voir où était stocké cette chaîne dans la mémoire (d'où &(*pszArray)) mais ce qui en résulte est simplement l'affichage de la chaîne pointée par pszArray, à savoir "Developpez". A partir de là, je ne comprends plus rien! Où est stocké cette chaîne et, du coup, sur quoi le pointeur pointe-t-il?! Et ce quand bien même, en quoi est-ce différent d'un type string ?

Dans la continuité de ce questionnement, j'aimerais savoir comment il serait possible de remplir une chaîne pointée par un char* via un flux d'entré?
En effet, le code suivant plante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using namespace::std
 
int main()
{
 char* pszString;
 char* pszArray[0];
 
 cin >> pszString;
 cin >> *(pszArray + 0);
 
 
 system("PAUSE");
 return 0;
}
Evidemment pour les deux cin. J'en conclu qu'il faut utiliser dans ce cas là une allocation dynamique, non? Mais je n'arrive pas à voir comment il est possible d'allouer de la mémoire pour un tableau de pointeurs char* (pszArray). Pourriez-vous, s'îl vous plait, m'aider dans cette démarche?

Merci d'avance et bonne fin de journée.