std :: make_pair <const char *,int =“”>

时间:2016-09-07 12:59:46

标签: c++ pointers

我有一个来自&#39; main&#39;使用与(int main (int argc, char* argv[]))

调用main相同的参数的方法
std::pair<const char *, int> mtd1 (int argc, char * argv[]){
.
.
.
}

因为argv [1]是指向String的指针(假设它是至少一个程序参数,除了argv [0]),但不是常量指针,是否仍然可以(不是错误)传递argv [ 1]在mtd1

内的退货声明中
return std::make_pair <argv[1],99999 >

或者我需要在我的mtd1方法

中执行此操作
const char *abc  = arg[1]

返回之前

return std::make_pair (abc,99999 )      <- edited

1 个答案:

答案 0 :(得分:1)

如何以安全的方式做到这一点?

std::pair<std::string, int> mtd1 (int argc, char * argv[])
{
.
.
.
}

return std::make_pair (std::string(argv[1]),99999);

如果你坚持要回std::pair<char*,int>,那么这应该有效:

return std::make_pair (argv[1],99999);