User Breakpoint called from code at XXX 错误,麻烦各位大虾帮忙看一下
请各位大虾帮忙看一下,我的错误在哪儿呢?
在执行第二次WritePFile时候就出现了这个问题。谢谢啦!
我的代码
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
double X;
double Y;
double Z;
}Point;
typedef struct
{
int NumOfPoint;
Point *pPointList;
int Flag;
}Coord;
void WritePFile(Coord CoordList)
{
FILE* fp;
int i;
Point P[10];
for (i = 0; i < CoordList.NumOfPoint; i ++)
{
P[i] = CoordList.pPointList[i];
}
fp = fopen("File", "w");
fwrite(&CoordList.NumOfPoint, sizeof(int), 1, fp);
fwrite(CoordList.pPointList, sizeof(Point) * CoordList.NumOfPoint, 1, fp);
fwrite(&CoordList.Flag, sizeof(int), 1, fp);
fclose(fp);
if (CoordList.NumOfPoint > 0)
{
free(CoordList.pPointList);
CoordList.pPointList = NULL;
}
}
int ReadPFile(Coord *CoordList)
{
FILE* fp;
Point P[10];
if ((fp = fopen("File", "r")) == NULL)
{
return -1;
}
fread(&CoordList->NumOfPoint, sizeof(int), 1, fp);
fread(P, sizeof(P), 1, fp);
fread(&CoordList->Flag, sizeof(int), 1, fp);
fclose(fp);
if (CoordList->NumOfPoint != 0)
{
CoordList->pPointList = (Point *)malloc(sizeof(Point) * CoordList->NumOfPoint);
CoordList->pPointList = P;
}
return 1;
}
int main(int argc, char* argv[])
{
Coord CoordList;
CoordList.NumOfPoint = 1;
CoordList.pPointList = (Point *)malloc(sizeof(Point) * CoordList.NumOfPoint);
CoordList.pPointList[0].X = 1;
CoordList.pPointList[0].Y = 2;
CoordList.pPointList[0].Z = 3;
CoordList.Flag = 1;
WritePFile(CoordList);
ReadPFile(&CoordList);
CoordList.Flag = 2;
WritePFile(CoordList);
return 0;
}