如何在c ++中初始化双精度数组?

时间:2014-10-02 01:17:31

标签: c++ initialization initializer

我意识到在c ++中我无法使用double初始化memset数组。对于整数数组,我可以使用:

轻松初始化数组
int* a = new int[n];
memset(a, n*n, n*sizeof(int));

但是如何在c ++中初始化双精度数组呢?

long double* d = new long double[n];
memset(d, n*n, n*sizeof(long double)); // does not work

1 个答案:

答案 0 :(得分:-2)

memset(a, n*n, n*sizeof(int));

这可能没有达到预期效果。 doc说,值param被转换为unsigned char。每个字节将设置为该值。当你查看构成int的4或8个字节时,你会得到垃圾。我见过的唯一有用的值是0.这也可以用来初始化一个双重

将数值数组初始化为已知值(如42)的唯一方法是编写循环