相关疑难解决方法(0)

为什么C++中的main()没有重载使用std :: string?

我试图使用main()函数参数创建一个通过命令行获取参数的程序.作为一个(基本的)C++程序员(即使我非常熟悉C风格的指针和数组),我几乎没有使用过char*字符串和C数组.我花了一些时间来接受main()论证并将其转换为std::string......所以问自己:为什么在C++中main()函数不会超载std::vector<std::string> argv而不是旧的char* argv[]

对于"重载",我的意思是main()函数的共存,int main()int main(int argc, char *argv[])不是程序员对正常函数的重载.

c++ program-entry-point command-line-arguments

23
推荐指数
2
解决办法
3551
查看次数

内存分配和**argv参数

我知道我们使用这个论点,我甚至知道如何处理这个论点.

只有一件事我还是不明白.程序如何为来自输入的字符串分配内存.**argv在程序开始时没有分配内存,不是吗?我期待段错误,但它没有发生.

有人知道这个内存分配是如何工作的吗?

c c++ program-entry-point argv

8
推荐指数
1
解决办法
1476
查看次数

OS在哪里存储命令行参数?

我在Linux上工作.存储器的哪一部分是存储的命令行参数(堆栈或堆)?

我试图执行free(argv),我遇到了分段错误.这是为什么?

c

7
推荐指数
1
解决办法
2955
查看次数

在哪个内存段命令行参数存储?

命令行参数argc,arv[]mainC中的函数一起使用,它们在哪里存储在内存中?

我正在寻找这个问题的存储区域应该是堆,数据段,堆栈或其他.

c linux gcc

6
推荐指数
1
解决办法
7075
查看次数

命令行参数驻留在哪里?

已知C语言中main函数的原型为int main(int argc, char **argv)。argv 数组指向的那些字符串驻留在哪里?它们位于哪个内存段?数据、栈还是堆?

谢谢。

c linux memory

5
推荐指数
1
解决办法
688
查看次数

argc和argv的目的是什么?

int main( int argc, char ** argv ){
//code here
 return 0; }   
Run Code Online (Sandbox Code Playgroud)

我知道:

  1. argc is表示包含文件名的命令行参数的数量
  2. char ** argv应该是一个char*最初表示为的数组char* argv[]

假设我是对的,与相对较新的符号char **argv相比是char * argv[]什么?它指向什么?

我看过这篇文章 C/C++主要功能的参数在哪里?但它似乎解释了争论的位置,而不是别的.

c c++

3
推荐指数
1
解决办法
646
查看次数

使用printf时发出警告

可能重复:
c - 警告:函数'printf'的隐式声明

刚刚学习C.我在hello world program中收到警告:

main()
{
    printf("Hi\n");
}
Run Code Online (Sandbox Code Playgroud)

这是警告:

x.c: In function 'main':
x.c:2: warning: incompatible implicit declaration of built-in function 'printf'
Run Code Online (Sandbox Code Playgroud)

我怎样才能消除它?

c

2
推荐指数
2
解决办法
1416
查看次数