gpt4 book ai didi

c - 为什么我在数组分配时遇到段错误

转载 作者:行者123 更新时间:2023-11-30 20:29:26 34 4
gpt4 key购买 nike

我得到了N超过100万,并为数组分配了内存。但后来我尝试将值分配给数组元素,恰好在 i == 263164 上我遇到了段错误。这里出了什么问题?

int N = 1<<20;
float *x, *y;
x = (float *)malloc(N);
y = (float *)malloc(N);
for (int i = 0; i < N; i++) {
x[i] = 1.0f;
y[i] = 2.0f;
}

最佳答案

在调用(float *)malloc(N)时,我分配了N字节并返回指向该分配的指针。当我尝试将 N 个 float 写入该数组时,出现段错误,因为 N 个 float 无法容纳 N 个字节。相反,我应该像这样分配内存 (float *)malloc(N*sizeof(float))

关于c - 为什么我在数组分配时遇到段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58047948/

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