C ++ char返回输出符号

时间:2014-12-01 19:46:44

标签: c++ function char

我正在从函数返回一个char。当我在屏幕上看到这些奇怪的符号时,一切正常。

#include <iostream>

void testfunc(char* outStr);

int main()
{
  char FirstName[10];
  testfunc(FirstName);
  std::cout << "So far so good.";
  std::cout << std::endl;
  std::cout << FirstName;
  std::cout << std::endl;
  std::cout << "It worked!";
  std::cout << std::endl;
  system("pause");
  return 0;
}

void testfunc(char* outStr)
{
  char FirstName[10];
  std::cin >> FirstName; 
  outStr = FirstName;
}

我有问题的照片,但似乎我不能发布任何问题。输出看起来像随机bloks后跟数字和符号。这不是一个地址。它确实可以编译并运行程序。在FirstName之前和之后的cout,所有输出都很好。但是,FirstName本身会输出符号和块。

1 个答案:

答案 0 :(得分:3)

outStr = FirstName实际上并不复制字符串,只是指定outStr参数变量指向FirstNametestfunc()数组的第一个元素; <{1}}中的FirstName数组未被修改。

使用main()复制字符串,或者(更好)使用strcpy()而不是字符数组。