開發平台(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):