求救!!!

wangyi_1000 2004-05-04 06:50:07
MyList::MyList(char* t_name,char* t_ser)
{
ZeroMemory(name,100);
ZeroMemory(ser_name,100);
memcpy(name,t_name,sizeof(t_name));
memcpy(ser_name,t_ser,sizeof(t_ser));
}
name与ser_name为char[100];
为何memcpy后没有拷贝到
...全文
39 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhjie374 2004-05-04
对,sizeof()大小没有搞对!
  • 打赏
  • 举报
回复
kuangjingbo 2004-05-04
同意楼上各位的
  • 打赏
  • 举报
回复
cmx98 2004-05-04
同意楼上2位的
  • 打赏
  • 举报
回复
cngdzhang 2004-05-04
这是因为sizeof的问题

MyList::MyList(char* t_name,char* t_ser)
{
ZeroMemory(name,100);
ZeroMemory(ser_name,100);
memcpy(name,t_name,sizeof(t_name)); //这里的sizeof(t_name)结果是4
memcpy(ser_name,t_ser,sizeof(t_ser));//这里的sizeof(t_ser)结果也是4
}

作形参的时候,只要是指针,sizeof就是4

用strcpy吧
或者
传入多两个参数
MyList::MyList(char* t_name,char* t_ser,int namesize,int sersize)
{
ZeroMemory(name,100);
ZeroMemory(ser_name,100);
memcpy(name,t_name,namesize);
memcpy(ser_name,t_ser,sersize);
}

  • 打赏
  • 举报
回复
subtop 2004-05-04
给你一个例子:

void pointer_size(char *s)
{
cout << sizeof(s) << endl;
}
char ch[20];

sizeof(ch);//此处是20
pointer_size(ch);//输出为4
  • 打赏
  • 举报
回复
subtop 2004-05-04
sizeof()
你要明白它会执行什么?
传给它指针,它始终返回4——指针变量的字节数。
如果不好确定要拷贝的字符字节数,并且待拷贝字符数组是以'\0'结束的话,建议你使用strcpy();
当然,你也可以指定一个最大字节数,只要不大过t_ser,t_name的有效地址长度。


附:

sizeof Operator
sizeof expression

The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.

The expression is either an identifier or a type-cast expression (a type specifier enclosed in parentheses).

When applied to a structure type or variable, sizeof returns the actual size, which may include padding bytes inserted for alignment. When applied to a statically dimensioned array, sizeof returns the size of the entire array. The sizeof operator cannot return the size of dynamically allocated arrays or external arrays.
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-04 06:50
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……