Итак, я пытаюсь инициализировать целочисленный буфер без знака, а также использовать указатель файла (FILE * fp) для чтения из файла и сохранения содержимого файла в указанном выше буфере
Дело в том, что проблема не возникает, когда я не использую malloc () и определяю буфер как целочисленный массив без знака
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 10000
void main()
{
unsigned int i = 0;
unsigned int *buffer = (unsigned int*)malloc(sizeof(unsigned int)*SIZE);
unsigned int c;
unsigned int length = 0;
FILE *fp = fopen("testfn.c", "r");
if (fp == NULL) {
printf("\nFile not found.\nExiting...");
exit(1);
}
while ((c = fgetc(fp)) != EOF)
{
buffer[i] = c;
++i;
}
length = i;
printf("\nNumber of elements= %d\n", length);
for (i = 0; i <= length; ++i)
printf("%c ", buffer[i]);
fclose(fp);
}
Ожидаемый вывод - это содержимое файла, которое хранится в виде целых чисел и выводится на экран.
То, что я получаю, является ошибкой сегментации и не выводится.