开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
在ST_TEST str1为local变量时, 将指标转型成int,再将int转回成指标后,
会发生Segmentation fault。不转型的话就不会有问题。
test()和test2()说明转型和不转型的差型。
但如果将ST_TEST str1; 定为成global变量,test2()的转型也还可以使用。
int main()
{
ST_TEST str1;
test(&str1);
test2((int)(&str1));
}
void test(ST_TEST *const str_point)
{
ST_TEST str2;
memcpy((ST_TEST *)&str2, (ST_TEST *)str_point, sizeof(ST_TEST));
}
void test2(int str_int)
{
ST_TEST str3;
memcpy((ST_TEST *)&str3, (ST_TEST *)str_int, sizeof(ST_TEST));
}
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
http://pastebin.com/cMiJiCsf
补充说明(Supplement):