#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "queue.h"
#include "stack.h"
#define RECORDS_SIZE 100
#define NAME_SIZE 20
typedef struct Student
{
char nameStudent[NAME_SIZE];
int TimeIn;
int TimeUpdate;
}STUDENT;
typedef struct TUTOR
{
char nameTutor[NAME_SIZE];
int TutorTIme;
STUDENT *ptr;
}TUTOR;
QUEUE *queue1;
STACK *stack1;
void getData(STUDENT *studentArr[RECORDS_SIZE]);
int main (void)
{
STUDENT *studentArr[RECORDS_SIZE];
FILE *fp = NULL;
getData(studentArr);
return 0;
}
void getData(STUDENT *studentArr[RECORDS_SIZE])
{
FILE *fp;
char fileName[NAME_SIZE];
char buffer[RECORDS_SIZE];
int count = 0;
printf("Enter file name: ");
gets(fileName);
fp = fopen(fileName, "r");
if (fp == NULL)
{
printf("Error! The file does not exist!\n");
}
fgets(buffer, RECORDS_SIZE, fp);
*studentArr = (STUDENT*) malloc(buffer[0]*sizeof(STUDENT));
while (fgets(buffer, RECORDS_SIZE, fp) != NULL)
{
printf("%s", buffer[count]);
*studentArr[count]->nameStudent = (char*) malloc(strlen(buffer)*sizeof(char));
studentArr[count]->TimeIn = (int) malloc(strlen(buffer)*sizeof(int));
sscanf(buffer,"%[,],%d", *studentArr[count]->nameStudent, &studentArr[count]->TimeIn);
printf("%s%d\n", studentArr[count]->nameStudent, &studentArr[count]->TimeIn);
count++;
}
return;
}
上記の割り当ては、キャストなしでポインタから整数を作成するという警告があります[デフォルトで有効]| *studentArr[count]->nameStudent にメモリを割り当てる行で、なぜこの警告が表示されるのですか?
これは私のファイルがどのように見えるかです
4
A,10
B,12
C,60
D,120
tutorY
最初の行を読み込もうとした後、最初の行の番号を使用してポインターを構造体の配列に割り当て、読み取りを続け、残りの構造体のメンバーを割り当てました
while ループが間違っていたと思います。fgets を呼び出して、while ループで再利用するとは思わないかもしれません。そこにエラーがあるようです。この機能を修正するにはどうすればよいですか?
少し早いですがお礼を