日期:2014-05-16  浏览次数:20646 次

一个奇葩的问题,两个LONG LONG型相除等于0
linux底下的程序,没办法把代码拷过来,故简单说明下情况。
入参:
unsigned long long *pTime;
unsigned long long *pInvite;
*pTime=0x4E2FBCD6;
*pInvite=0x00000001;
做完下面操作,出现问题:
*pTime=(*pTime)/(*pInvite);
接着打印*pTime就是0x00000000;

我尝试定义变量
unsigned long long Time ,Invite;
Time =*pTime;
Invite=*pInvite;
打印出Time和Invite的值都分别与*pTime和*pInvite一致。
然后Time=Time/Invite;
打印Time依然是0x00000000;
求解啊!

分不多抱歉
linux

------解决方案--------------------
首先回答第一个例子的问题
unsigned long long *pTime;
unsigned long long *pInvite;//两个指针没有指向的内存地址,为空指针,
*pTime=0x4E2FBCD6;
*pInvite=0x00000001;//空的指针,赋值没意义。
修改方法:
1,定义两个变量
unsigned long long a,b;
unsigned long long *pTime=&a;
unsigned long long *pInvite=&b;
2,分配内存
unsigned long long *pTime;
unsigned long long *pInvite;
pTime=(unsigned long long *)malloc(sizeof( *pTime));
pInvite=(unsigned long long *)malloc(sizeof( *pInvite));