我遇到了使用供应商的api检索邮件的xml部分的问题。作为一个有效的例子: getDestination(void * message,void * destination,void * size)
vendordestinationtype_t dest;
getDestination(msg_p, &dest, 16);
printf("Received message. (Destination: %s).\n", dest.dest);
生成:收到消息。 (目的地:某个目的地)。
要检索消息的XML部分,它需要一个函数getXmlPtr(void * msg,void ** xml_ptr,void * xml_length)
char ptr[10000];
int size;
getXmlPtr(msg_p, (void**)&ptr, &size);
printf("Received message. (XML: %s).\n", ptr);
所以问题是,如何声明和传递ptr以便我可以获取xml信息(供应商的文档非常糟糕)它主要说该参数应该是指向应用程序指针的指针在返回时填写消息XML数据指针。程序员可以将返回的void指针强制转换为适合应用程序的任何引用。
答案 0 :(得分:0)
好吧,你将指向void的指针声明为指向void的指针:void *ptr;
。
答案 1 :(得分:0)
void**
表示您通过引用传递指针;据推测,该函数将修改它以指向XML数据存储的任何位置。所以你需要一个指针,而不是一个数组:
void * ptr;
int size;
getXMLPtr(msg_p, &ptr, &size);