Re: [語法] *(int *)0 = 0;

看板C_and_CPP (C/C++)作者 (張騫)時間16年前 (2009/04/14 13:56), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
*(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
文章代碼(AID): #19v2Lpl7 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
13
28
完整討論串 (本文為第 2 之 2 篇):
13
28
文章代碼(AID): #19v2Lpl7 (C_and_CPP)