当前位置:  开发笔记 > 编程语言 > 正文

C,memset双数组失败

如何解决《C,memset双数组失败》经验,为你挑选了1个好方法。

我想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]);
    }

    ...
}

当我通过length2,代码不会打印所有1.它只打印以下内容:

7.7486e-304
7.7486e-304

那么,我该怎么做才能修复它?



1> anatolyg..:

memset设置字节.你正试图设置双打.从刚才循环0length并设定每一个到1.0:

for (int i = 0; i < length; i ++)
{
    a[i] = 1; // or 1.0 if you want to be explicit
}

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有