首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

char* 的C++有关问题。

2012-02-21 
char* 的C++问题。。。。。。。有以下一段代码#includeiostreamusingnamespacestdintmain(){charstrInputStrin

char* 的C++问题。。。。。。。
有以下一段代码
#include   <iostream>
using   namespace   std;
int   main()
{
  char   strInputString[10]   =   {0};
  char*   strOutputString;
 
  cout   < <   "请输入您的名字 "   < <   endl;
  cin   > >   strInputString;
 
  strcpy(strOutputString,   "您的名字是: ");
  strcat(strOutputString,   strInputString);
  cout   < <   strOutputString   < <   endl;
  return   0;
}
请问上面的代码是否存在什么漏洞?如果有,请问如何改进。
(请仔细检查)

[解决办法]
char* strOutputString=(char *)malloc(255);
[解决办法]
改进的办法就是用C++里的string.

#include <iostream>
#include <string>
using namespace std;
int main()
{
string strInputString;

cout < < "请输入您的名字 " < < endl;
cin > > strInputString;

string strOutputString( "您的名字是: ");
strOutputString += strInputString;
cout < < strOutputString < < endl;
return 0;
}

[解决办法]
char* strOutputString = new char[50];
[解决办法]
strOutputString 没有开空间啊
用楼上的string吧

[解决办法]
char* strOutputString;未指定内存指针
而且并未检查输入数据的有效性(长度之类)
[解决办法]
错误很明显了,就是char* strOutputString没有开空间.

1.开足够大的空间

2.用string
[解决办法]
1,没有分配内存
2,长度问题
[解决办法]
char* strOutputString没有分配空间。

热点排行
Bad Request.