#include <stdio.h>
typedef struct _scn_flashdev_body_
{
unsigned char scenetype;
unsigned short device;
unsigned short action;
unsigned short reserve;
} scnflashdev_lib;
scnflashdev_lib *testtal(void)
{
scnflashdev_lib tab;
scnflashdev_lib *p;
tab.scenetype = 1;
tab.device = 3;
tab.action = 1;
tab.reserve = 4;
p = &tab;
// printf("p:%p\r\n",p);
return (p); //指针的地址已经被释放了,错误
}
int main(void) {
scnflashdev_lib *aa;
aa = testtal();
printf("scenetype:%p\r\n",aa
); printf("scenetype:%d,device:%d,action:%d\r\n",aa
->scenetype
,aa
->device
,aa
->action
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCBfc2NuX2ZsYXNoZGV2X2JvZHlfCnsKCXVuc2lnbmVkIGNoYXIgc2NlbmV0eXBlOwoJdW5zaWduZWQgc2hvcnQgZGV2aWNlOwoJdW5zaWduZWQgc2hvcnQgYWN0aW9uOwoJdW5zaWduZWQgc2hvcnQgcmVzZXJ2ZTsKfSBzY25mbGFzaGRldl9saWI7CgpzY25mbGFzaGRldl9saWIgICp0ZXN0dGFsKHZvaWQpCnsKCXNjbmZsYXNoZGV2X2xpYiB0YWI7CglzY25mbGFzaGRldl9saWIgKnA7CgkKCXRhYi5zY2VuZXR5cGUgPSAxOwoJdGFiLmRldmljZSA9IDM7Cgl0YWIuYWN0aW9uID0gMTsKCXRhYi5yZXNlcnZlID0gNDsKCXAgPSAmdGFiOwovLwlwcmludGYoInA6JXBcclxuIixwKTsKCXJldHVybiAocCk7ICAgICAvL+aMh+mSiOeahOWcsOWdgOW3sue7j+iiq+mHiuaUvuS6hu+8jOmUmeivrwp9CgoKaW50IG1haW4odm9pZCkgewoJc2NuZmxhc2hkZXZfbGliICphYTsKCglhYSA9ICB0ZXN0dGFsKCk7CglwcmludGYoInNjZW5ldHlwZTolcFxyXG4iLGFhKTsKCXByaW50Zigic2NlbmV0eXBlOiVkLGRldmljZTolZCxhY3Rpb246JWRcclxuIixhYS0+c2NlbmV0eXBlLGFhLT5kZXZpY2UsYWEtPmFjdGlvbik7CglyZXR1cm4gMDsKfQo=