函数中的字符数组

character array from function

本文关键字:数组 字符 函数      更新时间:2023-10-16

我面临一个令人困惑的问题,我有一个函数,返回一个字符数组,我试图读取并打印出来,但输出似乎是垃圾值

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,这将使您摆脱所有内存管理问题。