hur.cn - 华软网

 热门搜索

一个未初始化的指针

  作者:未知    来源:网络    更新时间:2011/9/15
好像感觉被忽悠了
char* fun()
{
 char *p;
 ...
 return p;


}
面试时人家说这个是对的,可我怎么觉得一个未初始化的指针,指向的是栈?
---华软 网友回答---
中间的...中,如果有p = new char[..],应该是对的
---华软网友回复---
题目的环境是什么?

---华软网友回复---
我不知道他中间有没有new,我觉得像这种题目就该属于未定义行为。而如果没有NEW,这样是不是返回一个栈指针?
---华软网友回复---
指针本身是栈,但是指向的内存可以是堆啊。。
---华软网友回复---
只要指向的内存数据还存在就行。 如果p指向的是函数内栈变量,则是有bug的
---华软网友回复---
题目是这样的,如果有版主看见请不吝帮忙改下
C++">
char* fun()
{
  char p[]="Hello";
  return p;
}
char* fun()
{
  char *p;
  ..
  return p;
}


他问我哪个对的。我说第一个肯定是得不到预期结果的,因为返回的栈指针。第二个我说我不知道他想干什么,这应该属于未定义行为(我觉得char *p在未new或者=等操作前他就是一个栈指针)。他还一脸鄙视的告诉我说第二个是对的。
---华软网友回复---
返回一个地址

想想,返回一个int总是没问题的吧
---华软网友回复---
也就是说我觉得char *p;是一个栈指针,而...这种什么的天知道他操作什么。
---华软网友回复---
引用 7 楼 ouyh12345 的回复:
返回一个地址

想想,返回一个int总是没问题的吧

是啊,我知道没问题呢,但是都得不到预期结果把?
---华软网友回复---
面试题?
---华软网友回复---
嗯?题目本身就不好把?哪有出里面夹杂...的,让人猜他做什么么?这不坑人么?桃子面的哪个公司?曝光一下。 
---华软网友回复---
第一个不对,第二个就对的。

没必要想太多。排除法。。。反正你默认...部分是p = new char就行。。
---华软网友回复---
一般函数不要返回指针。建议使用

void fun(char *p){
    //指针操作
}

微软很多函数就是这样的。
---华软网友回复---
bad ptr  yong yingyong hao    (&(*p))
---华软网友回复---
NND,你也给他一个...
---华软网友回复---
这公司出这面试题,就是坑爹呢!
---华软网友回复---
引用 6 楼 peachbrandy1 的回复:
题目是这样的,如果有版主看见请不吝帮忙改下

C/C++ code


char* fun()
{
  char p[]="Hello";
  return p;
}
char* fun()
{
  char *p;
  ..
  return p;
}



他问我哪个对的。我说第一个肯定是得不到预期结果的,因为返回的栈指针。第二个我说我不知道他想干什么,这……

真奇葩,题目都不全说对,还一脸鄙视别人
---华软网友回复---
真是厉害,这题目出出来想干什么?
---华软网友回复---
就算错了,凭什么鄙视你啊?
这样写即使是对的,他也要在外面释放内存,不符合常规设计
---华软网友回复---
是不是这题没过,就OVER了?
---华软网友回复---
木意思的题目。体制下出来的童鞋,伤不起啊。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。