#include <stdlib.h>
#include <string.h>
int getFileSize(FILE *fp) {
int size;
fseek(fp, 0, SEEK_END);
size = ftell(fp);
return size;
int main() {
char *buffer;
int size;
FILE *fp = fopen(&fp, "words.txt", "r");
size = getFileSize(fp);
buffer = (char *)malloc(size + 1);
memset(buffer, 0, size + 1);
fseek(fp, 0, SEEK_SET);
fread(buffer, sizeof(char), size, fp);
for (int i = size; i>= 0; i--) {
fwrite(&buffer[i], sizeof(char), 1, stdout);
}
fclose(fp);
free(buffer); buffer = NULL;
-----------
실행은 됩니다 그런데 통과가 안되네요
파일크기 -1 부터 0까지 반복하라는데 이것때문인거 같습니다
어떻게 해야하나요??
(도장_ 관리자에 의해 편집됨 - 원문 제출일 2017년 5월 24일, 수요일, 오전 10:25 )
for 반복문에서 (파일 크기 - 1)부터 0까지 반복해야 합니다.
size가 아니라 (size - 1)이어야 합니다.
"hello"이면 size = 5이고, 배열 인덱스는 0~4까지입니다.
만약, array[size]로 접근하면 배열 인덱스 5이므로 범위를 벗어나서 오류가 발생합니다.