Sto scrivendo un programma C e sto superando il limite di ricorsione tramite un errore di segmentazione. C'è un modo per aumentare il limite di ricorsione del programma (magari aumentando le dimensioni dello stack), tramite un'opzione per GCC o tramite un'opzione della riga di comando? Il programma è in esecuzione su Ubunutu.C'è un modo per aumentare le dimensioni dello stack/limite di ricorsione?
risposta
È possibile modificare la dimensione dello stack con ulimit
su Linux, per esempio:
ulimit -s unlimited
su Windows con Visual Studio, utilizzare /F
option.
@iharob: la domanda è codificata in gcc, se fosse Windows probabilmente verrebbe etichettata come mingw. –
'ulimit -s unlimited' non rende le dimensioni dello stack illimitate. Permette solo di utilizzare il limite massimo configurato per il sistema. – wallyk
@PeterHorvath quindi grazie per spiegarmi cosa c'è di sbagliato nella mia risposta. – ouah
La dimensione dello stack è una funzione del sistema operativo, anche se molti sistemi operativi precedenti (ad esempio MSDOS) non eseguivano il controllo del segmento dello stack del programma: era compito del programma riservare un segmento di dimensioni adeguate.
Con memoria virtuale e API a 32 bit, la dimensione dello stack viene solitamente fornita da un meccanismo di gestione delle risorse. Ad esempio, su Linux, il comando ulimit
fornisce un'origine di controllo della dimensione dello stack. Altri livelli di controllo sono forniti da meccanismi all'interno del kernel che impongono criteri di sistema, limiti di memoria e altri limiti.
- 1. Come aumentare le dimensioni dello stack in python
- 2. Docker - aumentare le dimensioni di/dev/shm
- 3. C'è un modo per controllare le dimensioni dello stack disponibili prima della chiamata ricorsiva? (C#)
- 4. Swift, Xcode - Aumentare le dimensioni di un UISwitch
- 5. aumentare le dimensioni di un file utilizzando mmap
- 6. Come modificare le dimensioni di un widget dello Switch
- 7. Come modificare le dimensioni dello stack per un programma .NET?
- 8. OCAMLRUNPARAM non influenza le dimensioni dello stack
- 9. Un modo per supportare samsung galaxy s4 utilizzando le dimensioni dello schermo compatibili
- 10. C'è un modo per ridimensionare automaticamente le immagini MediaWiki a seconda delle dimensioni dello schermo?
- 11. Aumentare le dimensioni dei nomi di boxplot in R
- 12. come posso aumentare le dimensioni di questo SVG?
- 13. facebook rss - come aumentare le dimensioni dell'immagine dei pollici?
- 14. Android ottenere le dimensioni dello schermo dell'orientamento dello schermo
- 15. Aumenta le dimensioni dello stack in Linux con setrlimit
- 16. Come ottengo le dimensioni dello schermo generalizzato?
- 17. Python - Aumentare il limite di ricorsione in mac osx
- 18. È possibile utilizzare ng-if per le dimensioni dello schermo
- 19. Come posso aumentare le dimensioni di un CGRect di un certo valore percentuale?
- 20. Dimensioni dello sprite su diverse dimensioni dello schermo Andengine Android
- 21. Dimensioni dello stack di thread sicuro?
- 22. Rails/Ruby: un modo per abbreviare le tracce dello stack?
- 23. Browser Javascript Limite di dimensioni dello stack
- 24. Come leggere le dimensioni dello schermo fisico di OSX?
- 25. Rimuovi elemento per alcune dimensioni dello schermo
- 26. Un modo per aumentare la velocità di avvio JVM?
- 27. Come modificare le dimensioni dello schermo di PhoneGap?
- 28. Immagini di sfondo di grandi dimensioni e dimensioni dello schermo
- 29. Esiste un esempio di come utilizzare TouchDelegate in Android per aumentare le dimensioni del target di clic di una vista?
- 30. C'è un modo per scoprire le dimensioni/dimensioni delle tabelle del database?
Significa che si sta traboccando lo stack e quindi si sta verificando un errore di segmentazione? –
@iharob: Sì, l'ho verificato con 'gdb'. – Claudiu
perché non lo scrivi iterativamente? – saadtaame