首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

main(int argc,char *argv[])函数参数有关问题

2012-03-11 
main(int argc,char *argv[])函数参数问题main(int argc,char *argv[]){int ifor(i1iargci++)printf(

main(int argc,char *argv[])函数参数问题
main(int argc,char *argv[])
{
  int i;
  for(i=1;i<argc;i++)
  printf("%s%s",argv[i],(i<argc-1)?" ":"");
  printf("\n");
  return 0;
}
//这个函数中,字符数组指针argv所指向的内存在哪里?是什么时候申请的?表示疑惑,求指教!!!!
//读入字符串时难道不会读到非法内存吗

[解决办法]
一般存放到比main函数栈位置更高的内存。由启动函数申请。
[解决办法]
程序启动时,操作系统给你构造好了
包括环境变量、标准输入/输出..
[解决办法]
启动函数的功能归纳如下:

? 检索指向新进程的完整命令行的指针。

? 检索指向新进程的环境变量的指针。

? 对C / C + +运行期的全局变量进行初始化。(包含一些环境变量和__argv命令行参数等相关)

? 对C 运行期内存单元分配函数(m a l l o c 和c a l l o c )和其他低层输入/输出例程使用的内存栈进行初始化。

? 为所有全局和静态C + +类对象调用构造函数。

当所有这些初始化操作完成后,C / C + +启动函数就调用应用程序的进入点函数。

热点排行