gpt4 book ai didi

c++ - 如何将函数返回的字符指针转换为字符串?

转载 作者:行者123 更新时间:2023-11-28 06:07:37 33 4
gpt4 key购买 nike

我正在研究 Qt 上的套接字编程。我正在从服务器套接字作为客户端套接字读取 char 数组,并将结果作为 char 指针返回。

char* zgr_socket::sendMessage(){
char buffer[5];
while(1){
bzero(buffer,2);
n = read(sockfd,buffer,2);
if (n < 0){ }

close(sockfd);
return buffer;
}
}

我正试图从这个方法中获取生成的字符数组

void MainWindow::on_pushButton_2_clicked()
{
char* returnedChar = mySocket->sendMessage();


std::string aString(returnedChar);
QString myQString = QString::fromStdString(aString);

ui->label1->setText(myQString);
}

无论我尝试过什么,我都无法获得正确的 char 数组。当我调试查看 return buffer 行时,它返回正确的数组,但经过某种魔法后,我在 aString 变量中获得了任意值。请问有人能看出原因吗?

最佳答案

你返回一个指向 char buffer[5]; 的指针,只是 buffer 是函数的局部变量,因此在函数退出后它不复存在。你现在有一个悬空指针。尝试从函数返回一个 string 而不是一个 char* 并且只创建该字符串作为 return 语句的一部分。

关于c++ - 如何将函数返回的字符指针转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057046/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com