簡體   English   中英

如何將一個字符指針數組作為void *傳遞,然后轉換回字符指針數組?

[英]How do I pass an array of character pointers as void *, then cast back to array of character pointers?

我將一個字符指針數組傳遞給sqlite3_exec ,它接受1個參數並將其顯示為void * ,但后來我想將它作為回調函數中的字符指針數組來訪問。

char *output_params[] = {"one", "two"};
result = sqlite3_exec(db, sql_statement, callback, output_params, &zErrMsg);

....

static int callback(void *param, int argc, char **argv, char **azColName) {
    // How do I access my character array?
    char *output_params[2] = (char **)param;
}

我通過后如何訪問它?

這對我有用:

int callback(void *param, int argc, char **argv, char **azColName)
{
    const char** p = (const char **)param;
    printf("%s\n", p[0]);
    printf("%s\n", p[1]);
}

這是演示概念的簡單程序。

#include <stdio.h>

void foo(void* in)
{
    char **p = (char**)in;
    printf("%s\n", p[0]);
    printf("%s\n", p[1]);
}

void main(int argc, char** argv)
{
   char *output_params[] = {"one", "two"};
   foo(output_params);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM