关于一个指针使用的有关问题

关于一个指针使用的问题
CPtrList   userList(sizeof(User));

struct   User   *user_temp   =   new   User;
memset(user_temp,0,sizeof(User));
user_temp-> num   =   1;
strcpy(user_temp-> name, "LaYa ");
user_temp-> online   =   FALSE;
userList.AddTail(user_temp);
----------------------------------------------------
CPtrList   userList(sizeof(User));
struct   User   user_temp;
memset(&user_temp,0,sizeof(User));
user_temp-> num   =   1;
strcpy(user_temp-> name, "LaYa ");
user_temp-> online   =   FALSE;
userList.AddTail(&user_temp);
---------------------------------------------------
为什么上面一段我在userList.GetAt(pos)的时候就能得到正确的结构体,而下面一段得到的结构体内的值会不对。&user_temp的意思不就是user_temp的地址吗.为什么传递指针变量就可以,用&user_temp就不行?


------解决方案--------------------
临时变量。。。出了函数作用域就回收了。。。