РЕДАКТИРОВАТЬ: ПРОГРАММА РЕШЕНА.Я забыл char * readFile(char *path);
в первой функции.
Я программирую в функциях C 2.Первая функция должна вызвать char *readFile
во второй функции и сохранить содержимое в char *data
.Вторая функция имеет метод, который называется char *readFile(char* path)
и возвращает содержимое path
.
. Я не знаю почему, но по какой-то причине я получаю memory access error
.
Первая функция:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * readFile(char *path);
char * data;
int userSetCONFIGFILE = 0;
int main(void) {
if (!userSetCONFIGFILE) {
printf("path nicht angeben \n\n");
data = readFile("../../ToDo.txt");
}
if (data == NULL) {
printf("Error \n\n");
exit(-2);
}
printf("JSON string: %s \n", data); // return data
}
Вторая функция:
#include <unistd.h> //sleep & close
#include <stdlib.h>
#include <stdio.h>
char * readFile(char *path) {
FILE *fp;
char *dataReadFile = NULL;
if ((fp = fopen(path, "rb")) == NULL) {
printf("Fehler!! / Datei konnte nicht gelesen werrden \n\n");
return dataReadFile;
} else if (fseek(fp, 0, SEEK_END) != 0) {
fclose(fp);
} else {
long size = ftell(fp);
if (size > 0 && (dataReadFile = (char *) malloc(size + 1)) != NULL) {
fseek(fp, 0, SEEK_SET);
if (fread(dataReadFile, 1, size, fp) != (size_t) size) {
free(dataReadFile);
dataReadFile = NULL;
} else {
dataReadFile[size] = '\0';
}
}
fclose(fp);
}
return dataReadFile;
}
Я исключен для работы с data
в первой функции хорошо и распечатать ихиз.
Надеюсь, вы поможете мне.