Pour une raison quelconque, lorsque je réalloue la taille du tableau créé en utilisant calloc, il supprime les valeurs qui ont déjà été saisies, peut-être que quelque chose se passe mais je ne comprends pas pourquoi. J'ai changé le code pour qu'il comprend tout ce dont il a besoin pour travailler, désolé j'oublié querealloc supprimer des données déjà dans le tableau en C
#include <stdio.h>
#include <stdlib.h>
int main(void) {
unsigned int arraySize; // size of array
int moreElements; // stores user input whether more elements are to be
int additionalElements = 0; // number of elements to be added to array
unsigned int type; // stores the type of array
float sum = 0; // the sum of the elements
float *floatArrPtr; // pointer to a flaot
floatArrPtr = calloc(arraySize, sizeof(float));
for(size_t i = 0; i < arraySize; i++)
{
printf("Please enter a number for the array: ");
scanf("%f", &floatArrPtr[i]);
printf("%f\n", floatArrPtr[i]);
}
for(size_t i = 0; i < arraySize; i++)
{
sum += *(floatArrPtr+i);
}
sum /= arraySize;
printf("The average of the elements of the array is %lf\n", sum);
do
{
printf("if there are more elements to be added enter 1 and 0 if not: ");
scanf("%d", &moreElements);
} while (moreElements != 0 && moreElements != 1);
if (moreElements == 1) {
printf("please enter the number of additional elements you want to add: ");
scanf("%d", &additionalElements);
floatArrPtr = realloc(intArrPtr,(arraySize+additionalElements) * sizeof(float));
for (size_t i = arraySize; i < arraySize+additionalElements; i++)
{
printf("Please enter a number for the array: ");
scanf("%f", &floatArrPtr[i]);
}
sum = 0;
for(size_t i = 0; i < arraySize+additionalElements; i++)
{
sum += *(floatArrPtr+i);
printf("%zu, %lf, %d\n", i, floatArrPtr[i], arraySize + additionalElements);
}
sum /= (arraySize + additionalElements);
printf("The average of the elements of the array is %lf\n", sum);
}
}
Qu'est-ce que 'intArrPtr'? – ThingyWotsit
Impossible de déboguer du code incomplet (par exemple, qu'est-ce que 'intArrPtr'?). S'il vous plaît fournir un [mcve]. – kaylum
Quel type est 'floatArrPtr'? Est-ce 'float *' ou 'double *'? Je suppose que c'est «double *», ce qui signifie que vous n'allouez pas assez de mémoire. –