我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 一个令人费解的问题!!! 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

冰淇淋



性别: 美女 状态: 该用户目前不在线
等级: 品行端正
发贴: 395
威望: 0
浮云: 1107
在线等级:
注册时间: 2007-09-03
最后登陆: 2007-12-14

5come5帮你背单词 [ pierce /piəs/ v. 刺穿,看穿,洞察 ]


一个令人费解的问题!!!

Copy code
#include <iostream>
using namespace std;
int main()
{
    int  a[5];
    memset(a,-1,5);
    for(int i=0;i < 5;i++)
      cout<<a[i]<<"  ";
    return 0;
}

这是一个关于memset用法的一个小问题,不是说可以用memset来置0或-1的吗,为什么输出结果是:-1  -858993409  -858993460  -858993460    -858993460     
哪位高手来指点一下?


[ 此贴被kangtalc在2007-10-31 17:26重新编辑 ]
顶端 Posted: 2007-10-31 15:48 | [楼 主]
kangtalc



性别: 帅哥 状态: 该用户目前不在线
头衔: 揍敌客·奇犽
等级: 希望之光
家族: 万人坑恋影部落
发贴: 1723
威望: 5
浮云: 1113
在线等级:
注册时间: 2005-09-21
最后登陆: 2008-06-29

5come5帮你背单词 [ dedicate /'dedikeit/ vt. 奉献,题献,把(时间、力量等)用于… ]


应该用memset(a, -1, sizeof(a));才对
因为最后一个参数是数组字节的长度而不是元素个数
如果是32位机器的话int是32位,也就是4个字节,sizeof(a)应该返回20,也就是5个int的字节数
如果改为memset(a, -1, 20);应该也可以
顶端 Posted: 2007-10-31 17:30 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.008847(s) query 6, Time now is:11-22 21:28, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号