从变量参数函数获取字符串

SAS

我试图将双指针传递给变量自变量函数,以便可以在其中存储字符串(在示例中为“ hello world”),然后从主函数中将其打印出来,但它不起作用。

#include <stdio.h>
#include <stdarg.h>

void get_value(const char *str,...) {

   va_list valist;

   /* initialize valist for num number of arguments */
   va_start(valist, str);

   /* access all the arguments assigned to valist */
    void *p;
    p = va_arg(valist, void*);

    char *tmp = strdup("hello world");
    *(const char**)p = tmp;

   /* clean memory reserved for valist */
   va_end(valist);

}

int main() {
    const char *t;
    get_value("first", &t);
    printf("%s\n", t);
}

我试图遵循lib sd-bus的实现,因为该实现在其中经常使用,但到目前为止,我还无法解决此问题。

我的目的是将其用于模拟我的单元测试的sd总线方法。

dbush

您错过了#include

您所包含的include都不包含的声明strdup因此,编译器使用返回的函数的隐式函数声明int指针和的int大小很可能在您的系统上不同。隐式声明和真实声明之间的不匹配导致未定义的行为

strdup函数要求您#include <string.h>进行正确的声明。

另外,因为您知道to的参数get_value是type const char **,所以应该将其传递给va_arg代替,void *然后更改pto的类型以进行匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据特定字符获取字符串的函数

来自分类Dev

获取字符串标记/参数作为解析

来自分类Dev

如何获取字符串删除参数

来自分类Dev

获取字符串标记/参数作为解析

来自分类Dev

获取字符串文字参数的大小

来自分类Dev

C#MVC Resourcefile从变量获取字符串

来自分类Dev

获取字符串作为变量名

来自分类Dev

如何使用php从变量中获取字符串?

来自分类Dev

从变量数组java中获取字符串的长度

来自分类Dev

如何获取字符串本身作为变量

来自分类Dev

获取字符串中的变量名

来自分类Dev

如何使用php从变量中获取字符串?

来自分类Dev

从bash脚本变量解析json以获取字符串

来自分类Dev

使用 getattr 获取字符串变量的内容

来自分类Dev

在java中获取字符串的变量值

来自分类Dev

如何获取字符串的变量值?

来自分类Dev

从 Bash 中的变量列表中获取字符串

来自分类Dev

如何使用strlen函数获取字符串的长度

来自分类Dev

如何从函数类中获取字符串?

来自分类Dev

获取字符串的unicode字符

来自分类Dev

从字符串值获取字符?

来自分类Dev

从变量中提取字符串

来自分类Dev

从CharField获取字符串

来自分类Dev

获取字符串日期的格式

来自分类Dev

获取字符串月份

来自分类Dev

从StringBuilder获取字符串

来自分类Dev

递归获取字符串形式

来自分类Dev

在ListView中获取字符串

来自分类Dev

从netty ByteBuf获取字符串