VC6.0,数组初始化?

bingxin20100805 2010-08-05 04:22:44
float fdata[100];

把每个值初始化为1.1f,用memset怎么初始化?
...全文
360 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2010-08-06
  • 打赏
  • 举报
回复
谁能写出比上帖速度更快的代码,让我学习学习?
赵4老师 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hqin6 的回复:]
引用 7 楼 zhao4zhong1 的回复:
static float fdata[100];
__asm {
mov eax,0x3f8ccccd /*1.1f*/
mov ecx,100
lea edi,fdata
repz stosd
}
没实际运行,不保证对。楼主试试。
这语法还有错误。。。。
[/Quote]
#include <stdio.h>
void main( void )
{
int i;
static float fdata[100];
__asm {
mov eax,0x3f8ccccd /*1.1f*/
mov ecx,100
lea edi,fdata
repz stosd
}
for (i=0;i<100;i++) {
if (fdata[i]!=1.1f) break;
}
if (i<100) printf("ERR\n");
else printf("OK\n");
}

我刚刚将以上程序在VC6上编译运行输出
OK
xiazdong 2010-08-05
  • 打赏
  • 举报
回复
memset通常用来清空数组,而不是用来设置数的,而且void *memset(void *s, int ch, unsigned n);
可知ch为整型,1.1f蛮烦的如果转换的话 我不知道对不对,只是表达自己的看法。
参考资料:http://baike.baidu.com/view/982208.htm?fr=ala0_1_1
duke56 2010-08-05
  • 打赏
  • 举报
回复
	float fdata[100],*p;
p = &fdata[0];
while (p <= &fdata[99])
{
*p = 1.1f;
p++;
}
printf("%f\n",fdata[99]);

memset是字符处理函数,它处理的字节是char...平常用它来是可以的,但是如果不是处理0之外的,除char是不大好用的

比如,int == 4字节,char == 1字节
用memset处理会把int分成四个char型,处进行处理,就得不到想要的结果...

可以自己写个函数,配好型就可以了
wozhidaode 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hslinux 的回复:]

用for()来赋值吧。。。。
[/Quote]
这不是鸭头 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 forestdb 的回复:]

用for。
[/Quote].
hslinux 2010-08-05
  • 打赏
  • 举报
回复
用for()来赋值吧。。。。
太乙 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhao4zhong1 的回复:]
static float fdata[100];
__asm {
mov eax,0x3f8ccccd /*1.1f*/
mov ecx,100
lea edi,fdata
repz stosd
}
没实际运行,不保证对。楼主试试。
[/Quote]这语法还有错误。。。。
赵4老师 2010-08-05
  • 打赏
  • 举报
回复
static float fdata[100];
__asm {
mov eax,0x3f8ccccd /*1.1f*/
mov ecx,100
lea edi,fdata
repz stosd
}
没实际运行,不保证对。楼主试试。
taodm 2010-08-05
  • 打赏
  • 举报
回复
std::fill
ForestDB 2010-08-05
  • 打赏
  • 举报
回复
用for。
ForestDB 2010-08-05
  • 打赏
  • 举报
回复
LZ都知道了memset是把每个字节置0,那么一个float有四个字节,每个字节的内容又还不一样,memset怎么搞。
bingxin20100805 2010-08-05
  • 打赏
  • 举报
回复
那想把每个数,初始化成1.0,怎么写?
bingxin20100805 2010-08-05
  • 打赏
  • 举报
回复
memset(fdata,0,sizeof(fdata)),那这样写是把每个字节都初始化为0了是吗?
太乙 2010-08-05
  • 打赏
  • 举报
回复
memset看不见数据类型的~~~~

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧