QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1113|回复: 4

LINUX下关于指针相减的问题

[复制链接]
发表于 2005-12-8 11:02:53 | 显示全部楼层 |阅读模式
我有一段代码,要对指针进行运算,再vc++6下调试没有任何问题,可是拿到linux下就提示错误。帮忙看看,谢谢
(这个是base64解码的一段)
代码片断如下:

ch64定义如下:
char* ch64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

unsigned char *decode(unsigned char *src)
{
int n,i,j;
unsigned char *p;
static unsigned char *dst;
n=strlen(src);
for(i=0;i<n;i++) /* map base64 ASCII character to 6 bit value */
{
p=strchr(ch64,src);
if(!p)
  break;
src=p-ch64;
}

红色的部分出错
gcc编译器提示如下:
invalid operands to binary -

不知道该如何调试,请帮忙看看,谢谢了。
发表于 2005-12-8 11:35:01 | 显示全部楼层
changing "unsigned char *p; " to "char *p; " can solve your problem.
回复

使用道具 举报

发表于 2005-12-8 11:45:05 | 显示全部楼层
src=(unsigned long)p-(unsigned long)ch64;
回复

使用道具 举报

发表于 2005-12-8 15:25:38 | 显示全部楼层
把所有 unsigned char * 都改成 char * 罢。strlen, strchr 等函数原型都是接受 char * 作为参数的。
回复

使用道具 举报

 楼主| 发表于 2005-12-8 15:53:17 | 显示全部楼层
THANK YOU 调试通过,成功了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 02:28 , Processed in 0.189996 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表