Increased array size. after increaseSize function some arguments of the same array are invalid. C lang

The program takes some txt input from "numbers.txt" file. It first counts the amount of all the numbers (freqCount)in that text file, than reads the file again and with the use of malloc it creates two arrays A and B , of which both have size equal to the amount of all the numbers in the text file. So far so good.

Now i want to increase the size of the array A, so that I can put "freqCount" more arguments in it. In the freqRepeat function I created, there is a function increaseSize which takes that same array A, and uses realloc to add 2*freqCount more arguments in it.

After calling the mentioned function increaseSize there is a problem, because only part of the arguments remain unchanged, and there are few arguments that become some huge number. This is a major issue. Can anyone please provide me with some help ? thanks

ps. I include the expemplary text file input at the end of the code.

#include <stdio.h>
#include <stdlib.h>
int read_ints(const char *file_name, int *result);
int *scanFreq(const char *file_name, int *A, int *B, int *resultTab);
int freqRepeat(int *A, int *B, int freqCount);
int *increaseSize(int *A, int freqCount);
void calcmalc(int freqCount);
int *nextArray(int *A, int *B, int freqCount, int freqStart);

int main()
{
int result = 0;
int resultTab = 0;
int freqCount;
freqCount = read_ints(“numbers.txt”, &result);
printf(“freqCount is %d”, freqCount);
int *A = (int *)malloc(freqCount * sizeof(int));
int *B = (int *)malloc(freqCount * sizeof(int));
scanFreq(“numbers.txt”, A, B, &resultTab);
freqRepeat(A, B, freqCount);

}
int read_ints(const char *file_name, int *result)
{
FILE *file = fopen(“numbers.txt”, “r”);
int i = 0;
int n = 0; //row number//

if (file == NULL)
{
printf(“unable to open file %s”, file_name);
}

while (fscanf(file, “%d”, &i) == 1)
{
n++;
printf(“%d\n “, i);
*result += i;
printf(”\n we are at row nr. %d sum of this number and all numbers before is: %d\n”, n, *result);
}
fclose(file);
return n;
}
int *scanFreq(const char *file_name, int *A, int *B, int *resultTab)
{
FILE *file = fopen(“numbers.txt”, “r”);
int i = 0;
int n = 0; //row number//

if (file == NULL)
{
printf(“unable to open file %s”, file_name);
}

while (fscanf(file, “%d”, &i) == 1)
{
n++;
*resultTab += i;
B[n] = i;
A[n] = *resultTab;
}
fclose(file);
return 0;
}

int freqRepeat(int *A, int *B, int freqCount)
{
int lastFrequency;

lastFrequency = freqCount;
freqCount = freqCount + freqCount;
A = increaseSize(A, freqCount);

printf(“\n\nwcis enter\n\n”);
getchar();

for (int i = 1; i < 15; i++)
{
printf(“array argument after increasing array size %d \n”, A[i]);

// why some of the arguments have been changed ????????
}

return 0;
}
int *increaseSize(int *A, int freqCount)
{

return realloc(A, 2 * sizeof(int));
}

text input:
-14
+15
+9
+19
+18
+14
+14
-18
+15
+4
-18
-20
-2
+17
+16
-7
-3
+5
+1
-5
-11
-1
-6
-20
+1
+1
+4
+18
+5
-20
-10
+18
+5
-4
-5
-18
+9
+6
+1
-19
+13
+10
-22
-11
-14
-17
-10
-1
-13
+6
-17


#c #arrays

4 Likes2.15 GEEK