c++ - c ++编译器如何获取argv字符串的长度
问题描述
在 C/C++ 中,argc 是命令行参数的计数,而 argv 是 char** 或指向字符指针的指针。我知道 argc 可用于获取参数的数量,但是编译器如何知道第一个参数或第二个参数的长度?
解决方案
编译器不知道argv
. 由您的编译器供应商提供并链接到您的可执行文件的运行时库将在创建进程时从操作系统获取命令行参数,然后该库将分配其自己的char*
指针数组,指向复制的空终止字符串来自操作系统提供的数据。然后将该数组传递给您的main()
via argv
,并argc
设置为char*
数组中有效指针的数量。main()
运行时将在退出后为该数组释放内存。
推荐阅读
- excel - 如何在每个 ActiveX 复选框中使用相同的代码?
- javafx - java.io.FileNotFoundException: videos.txt (系统找不到文件)
- python - 当我运行 python manage.py runserver(django 3.1) 它返回 NoReverseMatch 在 /
- c# - 使用 FluentValidation 手动验证无类型
- javascript - jQuery .match() 奇怪的行为
- node.js - 关于node js和mongodb中身份验证的问题
- cross-compiling - 交叉编译 Phidget 库 arm
- c# - “使用可能未分配的字段” - 取决于声明变量的位置?
- r - 条件错误时不显示 conditionalPanel
- javascript - 从 Javascript 中的字符串中提取电子邮件地址(谷歌标签管理器功能)