gpt4 book ai didi

C语言-Windows已触发断点

转载 作者:行者123 更新时间:2023-11-30 20:23:05 25 4
gpt4 key购买 nike

我正在 Visual Studio C++ 中编码 C 语言。

第一次调用该函数没有问题。它使所有进程,但在第二次调用 VS 时给出“Windows 已触发断点”错误。不过我在Linux下编译运行代码,没有问题。

void printDataPagePersons(int pageNumber)
{
Person* pageofCity = (Person*)malloc(sizeof(Person)* RECORD_COUNT);
printf("page of city : %d\n",sizeof(*pageofCity));

FILE* fp;
fp=fopen("x.dat", "rb");
fseek(fp, PAGE_SIZE*pageNumber,SEEK_SET);
fread(pageofCity, PAGE_SIZE,1, fp);
fclose(fp);
//OTHER PRINTING PROCESSES...
}

最佳答案

在这里分配一个缓冲区:

Person* pageofCity = (Person*)malloc(sizeof(Person)* RECORD_COUNT);

这是该缓冲区的大小:

sizeof(Person)* RECORD_COUNT

然后,您可以在这行代码中将数据从文件读取到该缓冲区中:

fread(pageofCity, PAGE_SIZE,1, fp);

在那里,您告诉 fread 函数将 PAGE_SIZE 字节读入该缓冲区。

我猜你的问题的原因是这个条件也是成立的:

PAGE_SIZE > sizeof(Person)* RECORD_COUNT

关于C语言-Windows已触发断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37224068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com