函数中的字符数组
character array from function
我面临一个令人困惑的问题,我有一个函数,返回一个字符数组,我试图读取并打印出来,但输出似乎是垃圾值
char *ssl;
ssl = router_con.get_ssp_IO('1',this->no_io_l1);
for(int qq=0;qq<this->no_io_l1;qq++)
{ std::cout<<ssl[qq]<<"n";
}
get_ssp_IO函数如下
char* TCP_IP_Connection::get_ssp_IO(char level,int id)
{
int ctr,ss=0;
char sspi[id];
for(int a=0,ctr=0;a<this->len;a++)
{
if(this->data[a]=='?')
{
do
{
a++;
}while(this->data[a]!='n');
}
else if(this->data[a]==' ')
{
ctr++;
if(ctr==3)
{
sspi[ss]=this->data[a+1];
ctr=0;
ss++;
}
}
}
return(sspi);
}
我做错了什么吗?
没有进一步的细节,我的怀疑是get_ssp_IO(....)
看起来像这样:
.... get_ssp_IO(....) {
char ret[some_length];
....
return ret;
}
,但是一旦函数返回,数组内存就没有定义了。由于您使用的是c++,因此应该使用std::string
,这将使您摆脱所有内存管理问题。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符