阅读:1816回复:13
一个小问题
有什么办法能让
int*pp=&p; pp==NULL;成立?2000平台。 |
|
沙发#
发布于:2005-01-14 17:31
有什么办法能让 什么意思 是要让 pp==NULL 成立吗? 这样就可以了 int *pp = NULL ; if(pp == NULL) { 肯定到这里 } |
|
|
板凳#
发布于:2005-01-14 18:34
有什么办法能让 这一句int*pp=&p; 已经给pp赋值为某变量或指针的地址了, 以后pp指向的是地址不可能是空了, 除非进行pp = NULL;操作 要说*pp == NULL 倒有可能 |
|
|
地板#
发布于:2005-01-15 16:11
有什么办法能让 如果p是一个变量,那应该不成立的。 |
|
|
地下室#
发布于:2005-01-17 17:38
能不能去除0地址的保护来实现?
|
|
5楼#
发布于:2005-01-18 13:21
有什么办法能让
int*pp=&p; pp==NULL;成立?2000平台。 你的意思是不是这样: const int*pp=&p; pp==NULL;成立?2000平台。 如果是,这要看int*pp=&p;是在哪里定义的。 如果是在一个函数里的话,编译器会为pp在堆栈上分配空间,而不是在只读存储区。 如果你能修改那块内存的话,pp的值就会改变。但是如果编译器 pp==NULL被编译成 mov eax,[ebp-?];分配给pp的地址 cmp eax, 0 那就可以了。 可如果编译成 mov eax, ?;p的地址 cmp 0 你就没办法了。因为编译器把pp当做常量引用,而不使用内存。 [编辑 - 1/18/05 by dongni386] |
|
6楼#
发布于:2005-01-19 20:50
直接定义pp=NULL不就行了吗?
|
|
7楼#
发布于:2005-01-20 20:21
有什么办法能让 没有办法把 |
|
|
8楼#
发布于:2005-01-20 22:46
[quote没有办法把 [/quote]
|
|
9楼#
发布于:2005-01-28 08:07
我理解楼主的意思:先将指针变量p初始化为一个已定义变量pp的地址,然后通过某种方法(不是直接改变p的值)将pp的地址改变为NULL。如果我没理解错的话,这是不可能的:即使用汇编语言也无法改变一个已定义变量的地址!我指的是动态的改变,如果想在定义时给它一个特定的地址还是有可能的,但显然不是楼主的意图。
|
|
10楼#
发布于:2005-01-28 13:46
???
这是我到这以来,第一个看不懂的贴子。 楼主怎么没声音了呢? |
|
|
11楼#
发布于:2005-01-28 16:17
目的是什么呢???
|
|
|
12楼#
发布于:2005-03-09 15:35
不解
|
|
|
13楼#
发布于:2005-03-09 16:26
晕
|
|
|