C++ 缓冲区溢出:codesonar警告

C++ 缓冲区溢出:codesonar警告,c++,C++,缓冲区溢出帮助 此代码读取超过argv指向的缓冲区的结尾。 读取的第一个字节位于argv指向的缓冲区开头的偏移量8处。 偏移量超过了容量。 argv指向的缓冲区容量(以字节为单位)等于8。CodeSonar警告可能存在缓冲区溢出,因为在访问argv之前,您的程序可能会被2调用,然后此警告将消失: int main(int argc, char *argv[]) { std::string first_arg = argv[1]; std:: string sec_arg = ar

缓冲区溢出帮助 此代码读取超过argv指向的缓冲区的结尾。 读取的第一个字节位于argv指向的缓冲区开头的偏移量8处。 偏移量超过了容量。
argv指向的缓冲区容量(以字节为单位)等于8。

CodeSonar警告可能存在缓冲区溢出,因为在访问argv之前,您的程序可能会被2调用,然后此警告将消失:

int main(int argc, char *argv[])
{
    std::string first_arg = argv[1];
    std:: string sec_arg = argv[2];
}
#包括
int main(int argc,char*argv[])
{
如果(argc>2)
{
std::string first_arg=argv[1];
std::string secu_arg=argv[2];
}
返回0;
}

显示用于调用程序的命令行。您可能需要检查您是否实际拥有
argc>=3
code Sonar正在检查如果您的程序没有传递任何参数,并且如预期的那样存在问题,会发生什么情况。如果你不知道该产品的用途或用途,那么你购买它可能毫无意义(没有标价,但根据一个网站的说法,“小项目的起价是4000美元”),除非花钱是你的爱好。
#include <string>

int main(int argc, char *argv[])
{

    if (argc>2)
    {
            std::string first_arg = argv[1];
            std::string sec_arg = argv[2];
    }
    return 0;
}