Skip to content

Discards Const Qualifier At Assignment

Tu as des connaissances en C, mais elles sont erronés et tu as des lacunes.
Premièrement, il n'existe pas de variable constante en C. Le fait de mettre le qualificateur const à une variable n'en fait pas une constante mais l'a rend non modifiable.
De plus, la norme C introduit la notion de lvalue non modifiable. Ensuite tu confonds type et type pointé.

ici toto est une lvalue modifiable, mais les caractères vers lesquels il pourrait pointé ne le sont pas via celui ci.

ici toto est une lvalue non modifiable, mais les caractères vers lesquels il aurait pu pointé le sont via celui ci.

Pour en revenir à ton problème:

s_toto et s sont tous les 2 des lvalues modifiables, en revanche, s n'autorise pas la modification des caractères pointés par celui ci, ce que permet s_toto. Voilà pourquoi ton compilateur rale, tu lui dis, j'ai une fonction dont le prototype indique que la chaine passé en paramètre ne sera pas modifié, et dans cette même fonction, tu passes cette chaine à un pointeur (s_toto) qui ne l'a protège plus contre les modifications.
Comprends tu maintenant ton erreur?
Tu dois définir s_toto ainsi:

De plus, toute variable globale non initialisée, reçoit une valeur par défaut propre à son type (0, 0.0, NULL dépendant du type).

Или мы придем к соглашению. - Какому соглашению? - Немец слышал рассказы о коррупции в испанской полиции. - У вас есть кое-что, что мне очень нужно, - сказал Беккер.

- Да-да, конечно, - быстро проговорил немец, натужно улыбаясь. Он подошел к туалетному столику, где лежал бумажник.