| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4013 人关注过本帖
标题:一个函数的参数类型是unsigned char*,调用时想传入一个char *的变量,可以嘛 ...
只看楼主 加入收藏
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
一个函数的参数类型是unsigned char*,调用时想传入一个char *的变量,可以嘛?
程序代码:
//函数原型
int DesEnc(
        unsigned char *pInData,
        int nInDataLen,
        unsigned char *pOutData,
        int *pOutDataLen
        );

程序代码:
//调用:
int ret = 0;
    char*  plain = "123465789";
    int plainlen = strlen(plain);

    unsigned char copybuf[2048];
    int coyplen = 0;

    char plain2[4096];
    int plainlen2 = 0;
    //用户使用的函数
    ret = DesEnc(plain, plainlen, copybuf, &coyplen);//这里报错了,说第一个参数处形参实参类型不匹配


[此贴子已经被作者于2016-4-24 16:31编辑过]

2016-04-24 16:27
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
有尝试将plain定义为unsigned char*型,但是strlen()就用不了了.....
2016-04-24 16:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
可以,但这属于设计错误,应该设计成
int DesEnc(
        void *pInData,
        int nInDataLen,
        void *pOutData,
        int *pOutDataLen
        );

估计作者想表达byte*之意图
2016-04-24 19:30
快速回复:一个函数的参数类型是unsigned char*,调用时想传入一个char *的变量, ...
数据加载中...
 
   



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

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