gpt4 book ai didi

c - 尝试生成大型数据集时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:51 25 4
gpt4 key购买 nike

我想创建 60M 元素的大型数据集,每个元素 dim = 256(稍后将写入文件)。为此,我写了以下内容:

#define N 60000000L
#define DIM 256

int main(){
int i,j;
double tmp, *data;
data = calloc(N*DIM, sizeof(double));
tmp = 1.0 / RAND_MAX;
for (i = 0; i < N*DIM; i++) data[i] = (double) rand() * tmp - 0.5;
// TODO: Save data buffer in file
free(data);
}

但是我得到这个错误:

main.c:111:19: warning: comparison of constant 7695802368 with expression of type 'int' is always
true [-Wtautological-constant-out-of-range-compare]
for (i = 0; i < N*DIM; i++) data[i] = (double) rand() * tmp - 0.5;
~ ^ ~~~~~~~~~~
1 warning generated.

有人可以提示我为什么存在这个问题以及如何摆脱它吗?谢谢

最佳答案

您机器上的 int 类型不能容纳足够大的数字 >= 7695802368。这意味着您的 int 类型是 32 位。您需要使用 64 位数字,long long int 或者可能更合适,unsigned long long int

关于c - 尝试生成大型数据集时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45247550/

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