| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 357 人关注过本帖, 1 人收藏
标题:关于memset函数的问题。。
只看楼主 加入收藏
double聪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:118
注 册:2011-11-19
结帖率:66.67%
收藏(1)
已结贴  问题点数:10 回复次数:2 
关于memset函数的问题。。
如果我想把一个 数组a【100】的值都弄成1,该怎么用memset函数?
memset(a,1,100*sizeof(int))好像不行!!!
搜索更多相关主题的帖子: 函数 100 
2012-03-09 23:19
upsate
Rank: 2
等 级:论坛游民
帖 子:14
专家分:21
注 册:2011-12-26
收藏
得分:5 
因为memset是以字节为单位就是对array指向的内存的4个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个INT元素是4字节,合一起就是00000001000000010000000100000001,就等于16843009,就完成了对一个INT元素的赋值了。   所以用memset对非字符型数组赋初值是不可取的!

但是,可以这样:
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    int b[100];
    int i=0;
    memset(a, 1,100);
    for (i=0; i<100; i++)
    {
        b[i] = (int)a[i];
    }
    for (i=0; i<100; i++)
    {
        printf("%4d",b[i]);
        if (i%10==9)
        {
            printf("\n");
        }
    }
    printf("\n");
    return 0;
}
先定义一个相同长度的字符型数组,然后给字符型数组赋值,再将字符型数组转换成整型赋给想要赋值的数组。
但这样没什么意义,还不如用循环直接赋值。

2012-03-10 04:59
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:5 
学习

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2012-03-10 05:03
快速回复:关于memset函数的问题。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040478 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved