要求一个炭*

时间:2016-03-04 20:25:23

标签: c++ pointers

有没有办法做这样的事情:

void test(char *userInput){ 
  //code
} 
char userInput = "test"; 
test(userInput); 

我有错误:Process finished with exit code 139所以我该怎么办?

3 个答案:

答案 0 :(得分:3)

  

有没有办法做这样的事情:

当然,只需更改一下代码:

void test(const char *userInput){ 
   //code
} 

int main() {
    const char* userInput = "test"; 

    test(userInput); 
}
  

我有错误:Process finished with exit code 139所以我该怎么办?

我非常确定编译器确实会在出现之前向您展示一些further errors。先解决这些问题。

答案 1 :(得分:1)

您将此标记为C ++问题... std :: strings非常易于使用。

// NOTE: userinput can be either std::string OR const char*
void test(std::string userinput)
{
   // code, perhaps echo testing input
   std::cout << userinput << std::endl;
}

// test 290 - invoked somewhere in main
int t290(void)
{
   std::string userInput = "test1";
   test(userInput);

   // some times you can save some typing
   test("test2");     // function declared as above
                      // accepts both const char* or std::string

   return (0);
}

答案 2 :(得分:0)

正如其他人指出的那样,您的代码中存在错误,char应更改为const char*。 Char只保存一个值,而不是整个字符串,如果你的函数采用const值,那么字符串也必须如此。另外,如果你使用C ++,你可以使用std::string,它非常简单易用。