typedef struct thing {
IMAGE img; //原图
int x = 0; //坐标
int y = 0;
int weight = NULL; //决定上拉时的速度
int flag = 1; //用来标识物品的状态(没有被钩子抓住、被钩子抓住、已经被抓走了)
int i; //矿的标记
struct thing* next = NULL;
}TH;
TH *s;
loadimage(&s->img, "C:\\Users\\86135\\Desktop\\GoldMiner\\src\\HTMLgold.png", 175, 175);
transparentimage(NULL, s->x, s->y, &s->img, GREEN);//上面写好了函数,编译可以通过
//s->x , s->y已经设置好了,可以在控制台监控变量的窗口看到(证明设置好了)
//但是在控制台的监控变量窗口看到s->img是未定义的。我不清楚是为什么
这样写对不对呢,调试可以通过,但运行的时候不能成功让 s->img 存储照片信息 。可以保证文件的路径完全正确没有问题。
我最开始是这样写的:
typedef struct thing {
IMAGE img; //原图
int x = 0; //坐标
int y = 0;
int weight = NULL; //决定上拉时的速度
int flag = 1; //用来标识物品的状态(没有被钩子抓住、被钩子抓住、已经被抓走了)
int i; //矿的标记
struct thing* next = NULL;
}TH;
TH *s;
TH a;
loadimage(&a.img, "C:\\Users\\86135\\Desktop\\GoldMiner\\src\\HTMLgold.png", 175, 175);
//这里可以成功让a.img指向图片的地址
s->img = a.img;//这里会编译通过,但是运行过程中会出现指针访问异常
transparentimage(NULL, s->x, s->y, &s->img, GREEN);//上面的出现异常下面的就没有正常运行
所以我很疑惑,
第一个疑惑是关于loadimage()函数用法,是不是指针(TH *s)和正常结构体变量(TH a)在loadimage()函数用法不同,为什么会出现上面出现的问题?
第二个问题就是为什么 s->img = a.img; 这条语句会出现指针访问异常?
想了很久还是没有想出一个所以然,只能归结于自己才疏学浅,还请大佬批评指正~