gpt4 book ai didi

c - 尝试将 char[] 存储到 char* 时出现问题

转载 作者:行者123 更新时间:2023-11-30 19:32:07 25 4
gpt4 key购买 nike

我目前正在 Debian 上用 C 语言开发一个 Web 应用程序(不要问我为什么)。我创建了一种使用 POST 从表单获取数据的方法:

const char* getParam(char* postResult, char* param)
{
char stock[30];
char* pointer = strstr(postResult, param);
while(*pointer != 61)
pointer++;

int i = 0;
++pointer;
while(*pointer != 38)
{
stock[i] = *pointer;
i++;
*pointer++;
}
stock[i] = 0;
const char *result;
if(stock[0] == 0) {
result = "";
}else{
result = stock;
}
return result;
}

调用此方法时,我将数据存储在由

声明的变量中
char fname[40]; 

像这样

strcpy(fname,getParam(ptr, "firstn"));

然后,当尝试显示数据时,它显示奇怪的字符。

最佳答案

您将返回一个指向局部变量(stock)的指针,如果函数完成,该变量将不再可用。

使库存静态以使其保持不变或者使其成为动态分配的内存或者将 fname 传递到函数中并将其存储在那里。

无论如何,您都需要确保存储内容的内存在您使用时一直存在。

关于c - 尝试将 char[] 存储到 char* 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47467069/

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