【问题标题】:Memset issue with floating point array in C [duplicate]C中浮点数组的Memset问题[重复]
【发布时间】:2013-10-26 05:48:39
【问题描述】:

我正在尝试这个简单的例子来用 5.6 填充一个浮点数组,但是在打印出这些值时,每个值都只是 0.0。

#include <string.h>
float testArr[20];
memset(testArr, (float)5.6, 3*sizeof(float));
printf("Value 1: %lf\n",testArr[0]);
printf("Value 2: %lf\n",testArr[1]);
printf("Value 3: %lf\n",testArr[2]);
printf("Value 4: %lf\n",testArr[3]);

我也尝试过不将 5.6 转换为浮点数,设置 testArr[20] = {}testArr[20] = {0},但它们也会产生相同的 0.0。

【问题讨论】:

  • 阅读memset()的声明,然后搜索浮点到整数的转换。它们都不是魔法。
  • 你需要使用for循环,而不是memset
  • memset 将第二个参数转换为字符。见memset - C++ Reference
  • 这段代码编译时没有警告吗?

标签: c arrays floating-point memset


【解决方案1】:

memset 用 1 个char 填充内存,而不是float

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2022-01-02
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    相关资源
    最近更新 更多