【发布时间】: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