- 104
- 3
- CPU
- i5-10500 3.2Ghz
- Dissipatore
- Non specificato
- Scheda Madre
- Non specificata
- HDD
- M.2 251GB e M.2 500GB
- RAM
- 16GB DDR4 2666mhz
- GPU
- Grafica Intel® UHD 630
- Audio
- Non specificata
- Monitor
- 1920x1080 27"
- PSU
- Non specificato
- Case
- Non specificato
- Periferiche
- Nono specificato
- Net
- Eolo
- OS
- Ubuntu
Intanto ciao a tutti, ho un problema con un programma in C, più che un problema è un mancato errore da parte del compilatore.
Vado ad allocare dinamicamente 12 byte in memoria, ma non so per quale motivo se provo ad accedere a un indirizzo, in teoria inaccessibile, mi fa scrivere al suo interno.
CODICE:
Come si vede provo ad accedere a una locazione a me non accessibile, visto che sto provando ad accedere a un indirizzo che si trova a 224 byte in avanti rispetto al primo elemento dell'array.
Il problema e che non ricevo nessun tipo di errore, mi fa scrivere in quel indirizzo e poi il programma termina, neanche un errore di overflow, niente di NIENTE.
Vorrei capire perchè?
Vado ad allocare dinamicamente 12 byte in memoria, ma non so per quale motivo se provo ad accedere a un indirizzo, in teoria inaccessibile, mi fa scrivere al suo interno.
CODICE:
Codice:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int *ptr;
ptr = malloc(3*sizeof(int));
scanf("%d", (ptr + 56));
return 0;
}
Come si vede provo ad accedere a una locazione a me non accessibile, visto che sto provando ad accedere a un indirizzo che si trova a 224 byte in avanti rispetto al primo elemento dell'array.
Il problema e che non ricevo nessun tipo di errore, mi fa scrivere in quel indirizzo e poi il programma termina, neanche un errore di overflow, niente di NIENTE.
Vorrei capire perchè?
Ultima modifica: