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