作者richardhesid (张骞)
看板C_and_CPP
标题Re: [语法] *(int *)0 = 0;
时间Tue Apr 14 13:56:02 2009
*(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