将内存重新分配给数组

时间:2017-04-22 18:23:20

标签: c realloc

所以我正在编写一个c程序,它读取内部带有整数的文本文件的内容,每个整数都在一个新行上。我想创建一个数组,然后将文本文件的内容复制到数组中。然后我有另一个类似于第一个但略短的文本文件,我想通过计算第二个文件中的行数然后最终将第二个文本文件的内容复制到同一个数组中来重新分配内存到数组。 / p>

我已经到了将内存重新分配给数组但它不起作用的地步,我已经尝试了许多不同的方法,但似乎无法理解它。

MAIN.C

#include <stdio.h>
#include <stdlib.h>

void main(void){

    FILE *fp1;
    FILE *fp2;
    int number, temp, i=0, j;
    int numLines=0;

    fp1 = fopen("numbers1.txt", "r");
    while((number = fgetc(fp1)) != EOF){
        if(number == '\n'){
            numLines++;
        }
    }
    rewind(fp1);

    int *numbersFromFile;
    numbersFromFile = (int*) calloc(numLines, sizeof (int));

    while((number = fgetc(fp1)) !=EOF){
        fscanf(fp1, "%d", &numbersFromFile[i]);
        i++;
    }

    temp = numLines;

    numLines=0;

    fp2 = fopen("numbers2.txt", "r");
    while((number = fgetc(fp2)) != EOF){
        if(number == '\n'){
            numLines++;
        }
    }

    (int*) realloc(numbersFromFile, numLines);

    rewind(fp2);

    while((number = fgetc(fp2)) != EOF){
        fscanf(fp2, "%d", &numbersFromFile[i]);
        i++;
    }

    numLines += temp;
    for(i=0; i<numLines; i++){
        printf("%d\n", numbersFromFile[i]);
    }
}

0 个答案:

没有答案