Perché il codice seguente emette sempre la stessa posizione di memoria?Variabili locali a ciclo continuo in C
int x;
for (x = 0; x < 10; x++) {
int y = 10;
printf("%p\n", &y);
}
Ho pensato che la posizione della memoria dovrebbe cambiare ogni volta che viene eseguito il ciclo, la variabile è nuova.
Oh, va bene, grazie. Ho semplificato eccessivamente questa domanda, in quanto sto provando a creare una lista collegata, e creo un nuovo nodo in un ciclo for, e non voglio che il nodo successivo sovrascriva il nodo dall'iterazione precedente, ma è quello che sta facendo Pubblicherò una nuova domanda, una volta che posso produrre uno snippet di codice che può essere facilmente analizzato. –
se si desidera che le strutture di dati persistenti debbano essere create su "heap" anziché "stack". Usa 'malloc' ecc per questo. – Alnitak
@amandeepGrewal: dovresti creare le variabili sull'heap (con malloc) per ottenere il comportamento desiderato –