【发布时间】:2020-04-06 00:20:19
【问题描述】:
我试图在从文件中读取数据的函数中动态调整 struts 数组的大小,所以我不知道编译时的大小。
在主中填充动态分配的数组时出现错误“抛出异常:写访问冲突)在(看似)随机索引上为该数组分配值的行之一,如@987654322 中的i=170 @ in main,表明我没有正确分配函数中的内存。我在这里搜索过,但找不到我做错了什么 - 我很感激这可能是我遗漏的一些微不足道的事情。所以,请问我是什么这里做错了吗?
#define ELEMENT_COUNT 10000
typedef struct mystruct
{
uint64_t a;
uint64_t b;
uint64_t c;
} mystruct_t;
void test(mystruct_t ** p_struct_array, uint32_t * p_count)
{
*p_count = ELEMENT_COUNT;
*p_struct_array = malloc(ELEMENT_COUNT * sizeof(mystruct_t *));
}
void main()
{
mystruct_t * mystruct_array = NULL;
uint32_t count;
test(&mystruct_array, &count);
for (uint64_t i = 0; i < ELEMENT_COUNT; i++)
{
(mystruct_array)[i].a = i;
(mystruct_array)[i].b = i;
(mystruct_array)[i].c = i;
}
getch();
}
【问题讨论】: