首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ struct 函数传值的有关问题

2014-01-22 
C++ struct 函数传值的问题本帖最后由 luoyuehao 于 2014-01-19 20:09:29 编辑今天碰到个问题。。。struct的

C++ struct 函数传值的问题
本帖最后由 luoyuehao 于 2014-01-19 20:09:29 编辑 今天碰到个问题。。。struct的值怎么都没办法从函数里面拿出来。
结构定义:
stuct password_digest
{
    char* a;
    char* b;
    char* c;
}

函数是:
password_digest get_password_digest(struct password_digest & pdi)
{
    password_digest pd_return;
    ......
    char * temp = ".........................";
    pd_return.a = temp;
    memcpy(&pdi, &pd_return, sizeof(password_digest));
    return temp;
}

我的目的是把函数里面生产的char* temp给传出来、用个结构装着其中内容,把结构传出来。。。

调用情况是:
password_digest pdi1, pdi2;
pdi2 = get_password_digest(pd1);

结果是:pd1和pd2中的a的地址和函数里的pd_return.a的地址是一样的。。。
在pdi2 = get_password_digest(&pd1)这行调试,值是传出来了,再执行两行。。。里面的数据全没了。。。
现在该怎么处理这样的问题。。。
上面用memcpy就是为了能将结构体的内容全部复制一遍重新分配内存。。。怎么还是这样
[解决办法]
memcpy(&pdi, &pd_return, sizeof(password_digest));

注:
你的pdi指针成员数据需要内存空间,否则出错,你需要手动给它分配。,
[解决办法]
这个结构体内都是指针,有什么用呢?

热点排行