Je suis un démarreur C et viens d'apprendre la base de la programmation. Quand j'ai pratiqué le codage, j'ai remarqué quelque chose d'étrange au sujet de la sortie inattendue dont je ne connais pas les raisons et que je ne peux même pas décrire le problème.Code C - Pourquoi la sortie a renvoyé une valeur inattendue dans mon code?
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main()
{
int numberEntered = 0;
int index = 0;
char input[32];
int TotalNum = 0;
int x = 1;
int array[x];
printf("Please enter the size of the array: ");
fgets(input,32,stdin);
x = atoi(input);
for(index =0; index < x; index++)
{
printf("\nPlease enter your number:");
fgets(input,32,stdin);
numberEntered = atoi(input);
printf("The number you entered is : %d\n",numberEntered);
array[index] = numberEntered;
TotalNum ++;
}
for(index = 0; index < TotalNum; index++)
{
printf("array[%d] = %d\n",index,array[index]);
}
return 0;
}
Lors de la saisie par l'utilisateur an x = 15; Et les utilisateurs entrent alors des nombres de 1 à 15; La sortie était:
array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7
array[7] = 668977
array[8] = 9
array[9] = 10
array[10] = 11
array[11] = 12
array[12] = 13
array[13] = 14
array[14] = 15
je me attends à l'origine que le tableau [7] devrait me donner une sortie de tableau [7] = 8, puisque le nombre « 8 » est ce que les utilisateurs typés. Cependant, il a changé en nombres aléatoires. Je voudrais savoir la raison de cela.
'int x = 1; int array [x]; '- Quelle est la taille de votre tableau lorsque vous le créez? Changer 'x' plus tard ne fera pas grandir magiquement votre tableau. –