Allocazione statica e dinamica della memoria

di
Anonimizzato7108
il
2 risposte

Allocazione statica e dinamica della memoria

Ciao a tutti,
premetto che sono solo un povero newbie...
ho dei dubbi per quanto riguarda i meccanismi di allocazione della memoria:

int main()
{
(....)
int n_proj =1024;
float proj[n_proj] __attribute__((aligned(128)));
int size;
size= sizeof(proj)/sizeof(float);
printf("size = %d\n",size);
(....)
return 0
}
compilato con GCC
da quello che ho letto nelle varie guide durante la compilazione dovrebbe ritornare un errore o (perlomeno un warning) quando alloca staticamente la memoria per l array in quanto la variabile n_proj non è costante.Durante la compilazione nessuna avisaglia di pericolo e il programma mi spara in output:

size = 1024
END

Come mai il compliatore non si accorge di niente (sempre se sia compito suo...) e il programma sembra essere stato eseguito correttamente, in particolare sembra aver allocato in maniera corretta la memoria per l array anche se le sue dimensioni non sono state definite come const?

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte