En ce momentGenshin ImpactValhallaBreath of the wildAnimal CrossingGTA 5Red dead 2
Liste des sujets
Qustion C++
D0OM
Niveau 4
12 juillet 2003 à 22:59:34
Imaginons que je déclare une chaine de caractères : char *chaine = " Hello"; Et qu´ensuite j´écrive : char *chaine2 = chaine; Si j´entre ensuite : chaine2 = new char[100]; Le nouvel espace mémoire va il être alloué par dessus le précédent, ou sera il placer totalement ailleurs ?
Altonfrere
Niveau 10
12 juillet 2003 à 23:13:48
A ton avis ? ; )
comment interprètes-tu cette ligne :
char *chaine2 = chaine;
Altonfrere
Niveau 10
12 juillet 2003 à 23:16:44
( à noter que c´est le même principe que char *chaine = " Hello"; ) . ..
essaie de faire des dessins pour représenter ce qu´il se passe, si ca peut t´aider
D0OM
Niveau 4
12 juillet 2003 à 23:25:26
Ca réécrit par dessus n´est ce pas ?
JeanYvesYves
Niveau 10
13 juillet 2003 à 16:54:22
ben non : si tu fais
chaine2 = new char[100]alosr ça trouve une nouvelle zone en mémoire, et ça l´alloue. Donc l´ancienne valeur de chaine2 ( qui est un pointeur) est écrasée, donc voila.
D0OM
Niveau 4
13 juillet 2003 à 20:46:44
Mais la zone mémoire précédement utilisé, on peut réécrire dessus maintenant ?
Altonfrere
Niveau 10
13 juillet 2003 à 20:53:27
nan de toute facon " Hello" c´est une constante chaine donc quoiqu´il arrive tu pourras jamais écrire par dessus.