超级疑惑的指针问题
#include <stdio.h>
typedef unsigned charBYTE;
BYTE* GetCurDate(BYTE* DATE)
{
BYTE *TempDate = 0;
*(TempDate) = 0x11;
*(TempDate+1) = 0x12;
*(TempDate+2) = 0x13;
return TempDate;
}
main()
{
BYTE *Date=0;
BYTE *bCurDate;
bCurDate = GetCurDate(Date);
printf( "windows 32bit platform point test function! ");
}
编译通过,不能运行.如何修改?结果bCurDate等于多少?
[解决办法]
返回的是局部变量指针,当然不行。
[解决办法]
BYTE* GetCurDate(BYTE* DATE)
{
BYTE *TempDate = 0;//TempDate被初始化为空指针,指向地址0x00000000
*(TempDate) = 0x11;//错误!试图向地址0x00000000写入BYTE数据0x11,产生异常
*(TempDate+1) = 0x12;//错误!原因同上
*(TempDate+2) = 0x13;//错误!原因同上
return TempDate;
}