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 + +启动函数就调用应用程序的进入点函数。