0
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int temp;
int main()
{
FILE * fp;
fp = fopen("input2.txt", "r"); //Open the input
int counter = 0;
int realloc_counter = 10;
int *line_array; //Initialize the array
line_array = malloc(10 * sizeof(int)); //Allocate memory for initial ten numbers, of size int for each
while (fscanf(fp, "%d", &temp) > 0)
{
line_array[counter] = temp;
counter ++;
if (counter % 10 == 0)
{
realloc_counter = realloc_counter * 2;
line_array = realloc(line_array, realloc_counter);
}
}
fclose(fp); //Close the input file
free(line_array); //Free the memory
上面的代碼是我所擁有的。它不斷給我一個錯誤,我似乎無法弄清楚。使用valgrind它說有一個大小爲4的無效寫。任何建議或見解?realloc發出錯誤 - 無效的下一個尺寸
非常感謝。一讀到你解釋的部分,「第一部分是將元素數乘以元素大小,以便分配的字節數是正確的;第二部分是單獨使用元素數而不用元素大小「。我進去了,改了我的代碼,它的工作,我回來看看你的答案的其餘部分,我看到你做了同樣的事情。我想我只是忽略了我的類型。 – Michealf