|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
[C99]Teoria: Array a lunghezza variabile
Discutendo con i colleghi del mancato supporto del C99 da parte di VS2005, mi è venuto il dubbio su questa funzionalità del C.
Come fa il compilatore a mettere un array variabile nello stack? Altrimenti mi sfugge il concetto di stack dinamico come l'heap. |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
intendi come fa a fare una cosa del genere?
Codice:
void f(unsigned int n) {
int a[n];
// ...
}
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Soprattutto lo vedo pericoloso nei micro in cui non hai l'heap e ti ritrovi con 4KB di RAM |
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
su una normale architettura dotata di protezione della memoria lo stack overflow son problemi del tuo processo; se nei test vedi che il tuo programma crasha a causa di un'istruzione come quella allora non ti resta che aumentare la dimensione dello stack. comunque son d'accordo che faccia piuttosto schifo e che non ci voglia niente a sostituirla con una malloc controllata da un if subito dopo.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:42.




















