gpt4 book ai didi

c - 在函数中返回 char*

转载 作者:太空狗 更新时间:2023-10-29 17:26:37 24 4
gpt4 key购买 nike

我有函数:

char *zap(char *ar) {

char pie[100] = "INSERT INTO test (nazwa, liczba) VALUES ('nowy wpis', '";
char dru[] = "' )";
strcat(pie, ar);
strcat(pie, dru);
return pie;
}

主要有:

printf("%s", zap( argv[1] )  );

编译时我收到警告:

test.c: In function ‘zap’:
test.c:17: warning: function returns address of local variable

我应该如何正确地返回 char*?

最佳答案

最好的办法可能是根本不返回它 - 相反,将要填充的缓冲区作为参数传递到函数中。

void zap(char * pie, const char *ar) {
strcpy( pie, "INSERT INTO test (nazwa, liczba) VALUES ('nowy wpis', '");
char dru[] = "' )";
strcat(pie, ar);
strcat(pie, dru);
}

然后这样调用它:

char pie[100];
zap( pie, "foo" );

为了保证这个函数的安全性,您还需要传入缓冲区的长度,然后在每次您要添加新的查询元素时检查它。

关于c - 在函数中返回 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2442239/

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