C中浮点数组的Memset问题[重复]

Posted

技术标签:

【中文标题】C中浮点数组的Memset问题[重复]【英文标题】:Memset issue with floating point array in C [duplicate] 【发布时间】: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。 这段代码编译时没有警告吗? 【参考方案1】:

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

【讨论】:

以上是关于C中浮点数组的Memset问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

汇编中浮点数的总和数组

格式为 00:00:00 的 iOS 数组字符串到格式为 00.00.00 的数组浮点型 Objective C

C语言字符串类型转换为整型或浮点怎么做

字节数组byte[]和整型,浮点型数据的转换——Java代码

浮点数在c中的基数排序

php随机浮点数都有哪些?比如从0.1到3.0中随机一个浮点数出来?