Je développe une application pour un système embarqué avec une mémoire limitée (Tegra 2) en C++. Je gère les résultats NULL de new
et new[]
dans tout le code qui se produit parfois mais l'application est capable de gérer cela.SIGKILL lors de l'allocation de mémoire en C++
Le problème est que le système tue le processus par SIGKILL si la mémoire s'épuise complètement. Puis-je en quelque sorte dire que new
devrait juste retourner NULL au lieu de tuer le processus?
Je ne sais pas, mais vous pouvez essayer d'utiliser "nouvelle (nothrow)" http://www.cplusplus.com/reference/std/ new/nothrow/ –
Je fais dans la plupart des cas, sûrement quand j'alloue de plus grandes quantités de mémoire. Dans certains cas, j'étais trop paresseux pour réécrire new to new (std :: nothrow) mais je suppose que le processus se terminerait avec exception au lieu de SIGKILL. – Blackhex