디스크에서 관리 할 데이터 블록을 빠르게 할당하는 방법을 찾으십시오. 저는 50 개의 구조체 블록을 할당하고 있습니다. 그리고 대부분의 메모리가 잘 할당되지만, 모든 것을 다시 읽을 때 비워야하는 필드의 일부에서 정크 메일이 반환됩니다. 이게 내가 공간을 잘못 할당 한 것 같아서 메모리에있는 어떤 쓰레기가 그곳에 유출되는 것을 허용합니다."공백"데이터 블록을 .dat 파일에 할당하는 가장 쉬운 방법
if ((fpBin = fopen(BINARYFILE, "w+b")) == NULL)
{
printf("Could not open binary file %s.\n", BINARYFILE);
return;
}
fwrite(fpBin, sizeof(struct student), 50, fpBin); //Write entire hash table to disk
구조체 정의
typedef struct student
{
char firstName[20]; //name
char lastName[20];
double amount; //amount owed
char stuID[5]; //4 digit code
}student;
내가 배운 방법이다, 그러나 나는 여전히 깨끗한 상태가되는 대신 내 데이터의 일부 정크납니다. 질문 : 어떻게 모든 필드를 비워 둡니까?
답변 :
student tempStu[50] = {0};
fwrite(tempStu, sizeof(struct student), BUCKETSIZE, fpBin); //Write entire hash table to disk
학생 구조체 정의를 보여주십시오. – OldProgrammer
@OldProgrammer 그것은 무의미합니다. –