我意识到在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
答案 0 :(得分:-2)
memset(a, n*n, n*sizeof(int));
这可能没有达到预期效果。 doc说,值param被转换为unsigned char。每个字节将设置为该值。当你查看构成int的4或8个字节时,你会得到垃圾。我见过的唯一有用的值是0.这也可以用来初始化一个双重
将数值数组初始化为已知值(如42)的唯一方法是编写循环