免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1428 | 回复: 5
打印 上一主题 下一主题

求教指针问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-11 22:01 |只看该作者 |倒序浏览
char *Str;
int key = -1;

CPUB_ResultMapServer::Getvalue(0, &key, Str);
printf("获得成功\n");
printf("key = %d\n", key);
printf("Str = %s\n", Str);


int CPUB_ResultMapServer::Getvalue(int sequence, int *key, void *value)     
{
        map < int, void* >::iterator itr;

        itr = (m_StResult_Map[sequence].m_ResultMap).begin();
        if (itr != (m_StResult_Map[sequence].m_ResultMap).end())
        {
                *key = itr->first;
                value = itr->second;
                printf("itr->second = %s\n",value);
                return 1;
        }
        return 0;
}

执行结果:
itr->second = test test test test test
获得成功
key = 5             //结果正确
Str = _setjmp   //结果不正确 , 应该是test test test test test
请问怎么样 Str 指向 test test test test test  字符串的首地址

论坛徽章:
0
2 [报告]
发表于 2009-04-11 22:21 |只看该作者
好奇怪 这么久都没有高手来指点   

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
3 [报告]
发表于 2009-04-11 22:31 |只看该作者
int CPUB_ResultMapServer::Getvalue(int sequence, int *key, void *value)

>>>

int CPUB_ResultMapServer::Getvalue(int sequence, int *key, void **value)
{
*value = itr->second;
}
CPUB_ResultMapServer::Getvalue(0, &key, &Str);

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
4 [报告]
发表于 2009-04-11 22:33 |只看该作者
你要改变指针就要传下去指针本身的地址。


或者,弄个buffer传下去,
在函数里往buffer里拷。

论坛徽章:
0
5 [报告]
发表于 2009-04-11 22:39 |只看该作者

回复 #4 yangsf5 的帖子

谢谢 我试试 第一个方法  不可以buffer  就是传指针

论坛徽章:
0
6 [报告]
发表于 2009-04-11 22:42 |只看该作者

回复 #4 yangsf5 的帖子

非常感谢  成功了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP