Я эту структуру и функцию:Я не могу выделить память для этой структуры
typedef struct{
char *maze_size;
char *trophy;
int time_max;
char *moves;
}gameHistory;
Функция принимает указатель gameHistory *gameHistoryReaded
для резервирования памяти, но не работают.
void loadGameHistory(char fileName[], gameHistory *gameHistoryReaded, int *statusCode){
/* Here send error */
*gameHistoryReaded = (gameHistory*)malloc(LENGTH_GAME_HISTORY*sizeof(gameHistory));
(*gameHistoryReaded).maze_size = (char *)malloc(MAX_STRING*sizeof(char));
(*gameHistoryReaded).trophy = (char *)malloc(MAX_STRING*sizeof(char));
(*gameHistoryReaded).moves = (char *)malloc(MAX_STRING*sizeof(char));
FILE *file = fopen(fileName,"rb");
char line[200];
char *token1;
if (file == NULL){
printf("\nError de lectura: archivo no encontrado\n");
*statusCode = 0; //Si se presenta algun error en la lectura del archivsetea en 0 (error)
exit(1);
}
fgets(line,200,file);
token1 = strtok(line,":");
strcpy((*gameHistoryReaded).maze_size, token1);
token1 = strtok(NULL,":");
strcpy((*gameHistoryReaded).trophy, token1);
token1 = strtok(NULL,":");
strcpy((*gameHistoryReaded).moves, token1);
token1 = strtok(NULL,":");
(*gameHistoryReaded).time_max = atoi(token1);
fclose(file);
}
int main(){
char routegameHistory[] = "game_history.txt";
int statusCode = 1;
gameHistory gameHistory;
loadGameHistory(routegameHistory, &gameHistory, &statusCode);
}
Code :: Blocks показал мне это:
ошибка: несовместимые типы при назначении типа 'gameHistory
' от типа '' struct gameHistory *
Но я думаю, что struct
хорошо объявлены, другие point, Я выделяю память для int time_max
?
Хорошо, я попробовал ответить, но, прочитав ваши другие сообщения, я ** настоятельно рекомендую взять правильный курс программирования/C (например, прочитать хорошую книгу). Сначала вы должны получить основы. Это также поможет не урезать ни одного вопроса по каждому вопросу и не сможет получить ответ в точку. Без обид! – Olaf