Lorsque compilé par gcc puis exécutez, le codeLes pointeurs globaux provoquent une erreur de segmentation?
int *p; int main() {*p = 1;}
provoque une erreur de segmentation.
Apparemment, l'emplacement de mémoire contenu dans p ne peut pas être écrit.
Pourquoi ????
D'autre part,
int q[]; int main() {*q = 1;}
fonctionne très bien.
Que se passe-t-il ici ??
Pourquoi p contient-il uniquement de la mémoire en lecture seule?
Mais bien sûr! Tous les pointeurs globaux causant des fautes de segmentation doivent être plus probables qu'un léger malentendu sur le fonctionnement des pointeurs! – Thanatos