Question

Je travaille à partir d'un exemple de code qui alloue un tableau local relativement grand. (32768 pour être précis) Lorsque j'essaie la même chose, j'obtiens un comportement qui semble être un débordement de pile. Maintenant, je me demandais si mon exemple avait peut-être défini une pile plus grande que mon application. Est-ce possible? si oui comment?

Était-ce utile?

La solution

Avec le compilateur Microsoft, vous pouvez utiliser / F pour définir la taille de la pile, mais il semble que vous deviez simplement allouer l'objet sur le tas. Vous devriez avoir une raison pour laquelle vous allouez ceci sur la pile plutôt que sur le tas.

Modifier: Cette page donne un bon aperçu panne de plate-forme, même si elle peut être datée.

Autres conseils

Vous pouvez utiliser l'indicateur / F du compilateur pour définir la taille de pile par défaut ou le définir comme deuxième paramètre de Fonction CreateThread .

Plutôt que de jouer avec la taille de la pile, pourquoi ne pas simplement utiliser std :: vector ou même allouer dynamiquement un tableau vous-même?

Vous pouvez créer un nouveau fil pour ce travail. Vous pouvez généralement spécifier la taille de la pile lors de la création d'un thread, et certainement avec la fonction CreateThread () de vs2008

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top