gpt4 book ai didi

c - C中的数组初始化导致访问冲突

转载 作者:行者123 更新时间:2023-12-02 05:36:43 25 4
gpt4 key购买 nike

有人可以让我摆脱痛苦并告诉我为什么在用 ones 初始化数组时出现访问冲突吗?

#include <stdio.h>

void initData(float **data, size_t N)
{
int i;
*data = (float*)malloc( N * sizeof(float) );

for (i=0; i<N; i++)
{
*data[i] = 1.0;
}
}

void main()
{
float *data;
initData(&data,8);
}

最佳答案

取消引用 (*) 的优先级低于方括号运算符 []。因此,您所写的内容将有效地翻译成:

*(data[i]) = 1.0;

他的失败不应该让任何人感到惊讶。

将其更改为:

(*data)[i] = 1.0;

它不会破裂。


Include stdlib.h 以消除警告。

关于c - C中的数组初始化导致访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29285870/

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