我想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]);
}
...
}
Run Code Online (Sandbox Code Playgroud)
当我通过length时2,代码不会打印所有1.它只打印以下内容:
7.7486e-304
7.7486e-304
Run Code Online (Sandbox Code Playgroud)
那么,我该怎么做才能修复它?
memset设置字节.你正试图设置双打.从刚才循环0到length并设定每一个到1.0:
for (int i = 0; i < length; i ++)
{
a[i] = 1; // or 1.0 if you want to be explicit
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1335 次 |
| 最近记录: |