【发布时间】:2016-07-24 07:03:18
【问题描述】:
我想动态声明一个double 类型的数组,所以这是我的代码
void function(int length, ...)
{
...
double *a = malloc(sizeof(double) * length);
memset(a, 1, sizeof(double) * length);
for (int i = 0; i < length; i++)
{
printf("%f", a[i]);
}
...
}
当我传递2 的length 时,代码不会打印全1。它只打印以下内容:
7.7486e-304
7.7486e-304
那么,我该怎么做才能解决它?
【问题讨论】:
-
你为什么要标记这个
c?为什么在 C++ 代码中使用malloc? -
memset设置字节。您正在尝试设置双打。只需从0循环到length并将每个设置为1.0。 -
cout不是c! -
cout是标准模板库的一部分,因此是 C++。 -
既然您现在决定使用 C,您可以放弃
malloc- stackoverflow.com/questions/605845/… 的演员表