由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一道c/c++题 (转载)
相关主题
分享A公司面经关于判断stack grows up or down那道题
Facebook phone screenhow to access a const char array in a function
攒人品 报BB面经请问这样写程序错了吗?
代码求助C++ 题目
为什么我的这个dynamic解法有错误问一个C的简单问题
题目: string pattern matching w/ wildcard (.*)a MS interview question about C++
明天ONSITE攒人品,发面试知识点总结!!C++ 面试题疑问
请问strcpy()和memcpy()的写法问题问一个memory allocate/release的问题
相关话题的讨论汇总
话题: str话题: char话题: return话题: strcpy话题: 输出
进入JobHunting版参与讨论
1 (共1页)
g*****1
发帖数: 998
1
【 以下文字转载自 Programming 讨论区 】
发信人: guagua1 (), 信区: Programming
标 题: 请教一道c/c++题
发信站: BBS 未名空间站 (Fri Jan 27 22:47:12 2012, 美东)
char *m()
{
char str[50];
strcpy(str,"how are you");
return str;
}
int main()
{
char s[50];
strcpy(s,m());
printf("%s",s);
//cin.get();
return 0;
}
为什么结果可以正确输出呢?我知道return by pointer可以make copy,可是return之
后storage不是free了吗?
另外,为什么下面这个就只能由一部分正确输出?
char *m()
{
char str[20];
strcpy(str,"how are you");
return str;
}
int main()
{

printf("%s",m());
//cin.get();
return 0;
}
然后上面char str[20];改成比如char str[50],输出就完全是乱得了
h*c
发帖数: 1859
2
undefined

【在 g*****1 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 发信人: guagua1 (), 信区: Programming
: 标 题: 请教一道c/c++题
: 发信站: BBS 未名空间站 (Fri Jan 27 22:47:12 2012, 美东)
: char *m()
: {
: char str[50];
: strcpy(str,"how are you");
: return str;
: }

s******n
发帖数: 3946
3
因为m()函数产生的数组在stack上,越大的话,子串被printf调用过程中破坏的可能越
小。
r***e
发帖数: 213
4

我概念太差了,把帖子给删了。

【在 s******n 的大作中提到】
: 因为m()函数产生的数组在stack上,越大的话,子串被printf调用过程中破坏的可能越
: 小。

1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个memory allocate/release的问题为什么我的这个dynamic解法有错误
请教大家一道关于c++的面试题题目: string pattern matching w/ wildcard (.*)
G家电面,这回肯定挂了。附面经。明天ONSITE攒人品,发面试知识点总结!!
问个基础题,大家不要笑我请问strcpy()和memcpy()的写法问题
分享A公司面经关于判断stack grows up or down那道题
Facebook phone screenhow to access a const char array in a function
攒人品 报BB面经请问这样写程序错了吗?
代码求助C++ 题目
相关话题的讨论汇总
话题: str话题: char话题: return话题: strcpy话题: 输出