gpt4 book ai didi

c++ - 在 C++ 中显示访问冲突的错误

转载 作者:行者123 更新时间:2023-11-28 02:25:27 25 4
gpt4 key购买 nike

struct root
{
struct Qgroup
{
struct Qpost
{
struct Qcomment
{
struct Qcomment *next;
int likes;
int address;
} QComment[100];
int likes;
int comments;
int address;
} QPost[100];
int address;
int posts;
int users;
}QGroup[8];
}*Root = (struct root *)malloc(sizeof(struct root *));

在下一行获取访问冲突错误。

for(int i=0;i<5;i++)
Root->QGroup[i].address = i*128+1024*1024;

请帮我解决这个问题?我尝试了静态分配和动态分配,但都未能读取上述循环中给出的数据。此错误是从 main()

之后开始执行的

最佳答案

Root = malloc(sizeof(struct root *));

这必须更正如下:

Root = (struct root *)malloc(sizeof(struct root ));

无需强制转换为 struct root *,因为 malloc 返回一个 void 指针,您可以将其分配给 C 中的任何其他类型。但是对于 C++,您需要像你一样转换。

对于 C++,最好使用 newdelete 而不是 mallocfree。 所以你可以简单的使用如下:

 Root = new root ;

关于c++ - 在 C++ 中显示访问冲突的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30832124/

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