初始化用于肥皂结构函数参数的inC90中的char ** string

问题描述 投票:0回答:2

我正在进行肥皂开发,并使用gsoap生成了源代码,因此,我希望使用声明,因为如果可能的话,会提供它们。

为了在我的应用程序中使用,我得到了以下原型:

soap_call___accounts(struct soap *soap, struct _acnt *acnt, struct _resp *resp);

[acnt的以下结构定义为:

struct acnt
{
       int sizeacnt;
       char **acntNum;
};

我的问题是:

[在我的调用应用程序中,我需要使用结构成员acntNum作为调用函数中acnt参数的一部分来发送诸如“ 00000123”之类的帐号,但在使用该帐号之前,需要进行初始化。

char **acntNum如何正确初始化?

c c89
2个回答
0
投票

另请参见gSOAP 2.8.1 User Guide以获取更多信息。

您的肥皂功能接受多个帐户。因此,您不仅可以为帐户“ 00000123”调用soap函数,而且一次调用也可以使用两个帐户[“ 00000123”,“ 00000456”]。

要进行这项工作,您不仅必须分配内存,而且还必须将size参数设置为您通过的帐户数。例如,您可以执行以下操作:

struct acnt Accounts;
char *AccountToCheck = "00000123";

Accounts.sizeacnt=1;
Accounts.acntNum = malloc(1 * sizeof(*Accounts.acntNum));
Accounts.acntNum[0] = AccountToCheck;

soap_call___accounts(soap, &Accounts, &Response);

0
投票
char *acntNumP = malloc(strlen("00000123")+1);  
strcpy(acntNumP, "00000123");  
char ** acntNum = &acntNumP;

当然,需要检查NULL

© www.soinside.com 2019 - 2024. All rights reserved.