Re: [語法] *(int *)0 = 0;
*(int *)0 = 0;翻譯為asm如下:
movl $0,%esp #把地址0x0存入esp
movl $0,(%esp) #把0存入地址為0x0的地方。這就是出問題的地方。
※ 引述《godman362 (Shizuru)》之銘言:
: 如同標題:*(int *)0(數字0) = 0(數字0)
: 這個語法是我在看驅動程式中一個範例看到的
: 寫出這行程式,他的意思是說提取一個NULL指標所造成的錯誤
: 但是我比較有疑問的是lvalue那段
: *(int *)0這句是什麼意思
: 一般取成變數的話,如:*(int *)var;
: 這樣是將var這個位址的值取出不是嗎?
: 但是寫成0表示什麼意義?不是variable又要如何assign值給它?
: 請各位先進指點一下,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.191.37.122
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章