Nous avons récemment reçu un rapport indiquant que notre application ne fonctionnera pas de temps en temps. Je traqué le code de problème à ceci:Modifiez la stratégie malloc pour le tableau 2D afin que malloc réussisse
struct ARRAY2D
{
long[] col;
}
int numRows = 800000;
int numCols = 300;
array = (ARRAY2D*) malloc(numRows * numCols * sizeof(long))
Cette allocation de 800 Mo peut échouer si l'utilisateur ne dispose pas d'un grand bloc assez libre. Quelle est la meilleure façon de changer la façon dont j'alloue la mémoire?
Gardez à l'esprit que j'ai une grande quantité de code qui accède à cet objet comme celui-ci: array [suite] .col [colNum], donc je besoin de quelque chose qui nécessite mineur ou trouver principalement & remplacer édition du tableau code d'accès.
Utilisez-vous C ou C++? Vos tags n'aident pas. –
@Poita: il utilise probablement le C++ mais seulement les fonctionnalités C. * hausser * –
Est-il toujours le cas que votre application doit allouer cette mémoire ou est-elle dépendante d'un scénario particulier dans l'application? – zebrabox