错误代码
#include<stdlib.h>
typedef struct
{
int *a;
}HH;
void test(HH *p)
{
p->a = (int*)malloc(1024);
}
int main()
{
HH *p = NULL;
test(p);
return 0;
}
我本意是想创建一个结构体,将它以指针的形式传递给函数
在调试代码时第十行出现内存访问冲突的问题,错误原因是,创建了一个空的指针,然后将它传递给函数试图使用
正确的使用方法是:
int main()
{
HH a;
HH *p = &a;
test(p);
return 0;
}
关于0xC000000x: 写入位置 0xxxxxxxx时发生访问冲突这类问题,就从代码中的指针上找原因

本文介绍了一段导致内存访问冲突的代码示例,并分析了错误原因。指出在未正确初始化结构体指针的情况下调用函数是导致问题的关键。通过修改代码初始化结构体变量并正确获取其地址,最终解决了内存访问冲突问题。
3万+

被折叠的 条评论
为什么被折叠?



