Le programme tente d'allouer trop pile espace:
char *outputGwb = char[size]; // array is created "on the stack"
Utilisez malloc
(ou new
en C++) pour allouer de la mémoire du tas . Assurez-vous de free
(ou delete
en C++) la mémoire plus tard; ne mélangez pas les stratégies d'allocation/désallocation.
char* outputGwb = new char[size]; // C++: note use of the "new" keyword
char* outputGwb = malloc(size); // C: note no cast needed in a C compiler
Cette question est donc de la taille maximale d'une ressource particulière et est pas lié au nombre maximal d'une valeur entière peut représenter. Voir What and where are the stack and heap? pour une explication entre les deux zones d'allocation de mémoire. En outre, bien que je ne le recommanderais pas forcément, voici un thread that discusses how to change the stack size in Visual C++.
Je ne pense pas que cette affectation provoquera 'abort()' .. comment la variable/valeur est-elle utilisée? En d'autres termes, existe-t-il une ligne * différente * qui déclenche l'erreur de débogage? –
Salut pst, désolé pour le retard. En effet, j'utilise ce 'size' dans la ligne suivante: ' char * outputGwb = new char [taille]; '. Mais le fait est que cette erreur n'apparaît que lorsque je change le paramètre 'size' ... –