gpt4 book ai didi

c - 函数打印奇怪的字符: v����

转载 作者:行者123 更新时间:2023-11-30 18:35:52 26 4
gpt4 key购买 nike

MAIN.C 触发函数b()

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <mysql.h>
#include "main.h"

int main() {


const char *a;
a = b();

printf("%s\n", a);


}

MAIN.H 中的函数 b() 响应结果

static inline const char *b(){

const char* retu;
char query[300];

sprintf(query, "select * from TEST limit 1");

retu = query;

return retu;
}

这是MAIN.C脚本打印的内容:

v����

这真是奇怪的东西。不符合预期。 (预期)

最佳答案

retu 指向 query,当 b 完成时,它超出了范围,因此 main 中的内存不再有效。

要使字符串比 b 更持久,您需要在堆上分配它,例如使用malloc。

关于c - 函数打印奇怪的字符: v����,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44479763/

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