我对myname
数组的生命周期感到困惑,它在if
声明中还活着吗?我们在 c 和 c++ 中得到相同的答案吗?
int main (int argc, char* argv[])
{
char* host;
if (1 == argc)
{
/*code below is copied from a book*/
char myname[256];
gethostname(myname, 255);
host = myname;
/*code above is copied from a book*/
}
else
{
/* */
}
printf("%s\n",host);
return 0;
}
编辑:
代码片段来自本书Begining Linux Programming 4th edition
,第15章:套接字,很抱歉作者犯了这样的错误。但我认为这本书很好,排除了这段代码。