コードのこの部分でメモリを解放すると... :free(): 次のサイズが無効です (高速) というエラーが表示されます
int insertRecord(char *record,int recordSize,long dataPageNumber)
{
datapage *dataPage=(datapage *)malloc(sizeof(datapage));
readPage(dataPage,dataPageNumber);
slotentry slot;
//for checking and freeslotnumber storage
int freeSlotNumber=-1;
int negativeFlag=0;
int freeFlag=0;
if(recordSize+sizeof(slotentry)<=dataPage->cfs)
{
slot.slotsize = recordSize;
slot.slotaddress = dataPage->cfsptr;
dataPage->cfs -= (recordSize+sizeof(slotentry));
dataPage->cfsptr += recordSize;
dataPage->slotcount++;
memcpy(&dataPage->data[slot.slotaddress],record,recordSize);
free(dataPage);
return 1;
}
free(dataPage) を実行した後、上記のエラーが発生します...
typedef struct
{
int pagenumber;
int priority;
long dirPageNo;
long cfs;
int cfsptr;
int slotcount;
char data[1];
} datapage;
typedef struct
{
int slotaddress;
int slotsize;
} slotentry;
memcpy の前に free(dataPage) を保持していましたが、memcpy の後は正常に動作していませんが、memcpy の後は動作しません..エラーが表示されます....