|
|
|
![]() |
|
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: 7027
|
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: 7027
|
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: 03:45.