gpt4 book ai didi

c - 将字符串数组分配和检索给 void 指针

转载 作者:行者123 更新时间:2023-11-30 21:02:18 25 4
gpt4 key购买 nike

我对指针的工作原理很不熟悉。我正在使用一个函数,该函数以 void * 上下文作为参数回调函数。

如何将字符串数组分配给 void * 然后检索它们?

char callback_value[2][16];
snprintf(callback_value[0], sizeof(callback_value[0]), "string1");
snprintf(callback_value[1], sizeof(callback_value[1]), "string2");

// pass an array of strings into the void * callback context
void *callback_context = callback_value;


// Illustration only, doesn't work

// retrieve it here
char **retrieved_strings = (char **)callback_context;


printf("%s", retrieved_strings[0]); // Want "string1"
printf("%s", retrieved_strings[1]); // Want "string2"

最佳答案

#include <stdio.h>
void func(void* arg)
{
char (*tmp)[16] = arg;
printf("%s\n%s\n", tmp[0], tmp[1]);
}
int main(void)
{
char callback_value[2][16] = {"string1", "string2"};
void *callback_context = callback_value;
func(callback_context);
return 0;
}

char**char[2][16] 不兼容,您必须使用指向 char char (*) 数组的指针[16].

https://ideone.com/BqgeN6

关于c - 将字符串数组分配和检索给 void 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31198935/

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