为什么 calloc 函数只分配 1 作为内存大小?

问题描述 投票:0回答:0

我正在尝试读取一个文件并用文件中的所有字符填充一个数组。问题是在 while 循环中执行停止并且出现分段错误。这是感兴趣的功能:

void leggere_file(char **vettore_caratteri_file) {
    FILE *file_testo = NULL;

   int verifica;
   file_testo = fopen("FilePath", "rt");
   if (file_testo == NULL) {
      verifica = 0;
   } else {
      verifica = 1;
   }

   if (verifica == 1) {
      int lungh = calcolare_lunghezza_file(file_testo);
      *vettore_caratteri_file = (char *)calloc(lungh + 1, sizeof(char));

      int i = 0;
      fseek(file_testo, 0, SEEK_SET);
      while (i < lungh) {
         *vettore_caratteri_file[i] = fgetc(file_testo);
         i = i + 1;
      }
      *vettore_caratteri_file[i] = FINESTRINGA;
   }

   fclose(file_testo);
}

我尝试用 malloc 更改 calloc,尝试更改大小但它不起作用

c malloc allocation calloc
© www.soinside.com 2019 - 2024. All rights reserved.