2016-09-06 5 views
0

私は、スキーマの構造を持っているが、たとえばスキーマオブジェクトをインスタンス化するにはどうすればよいですか?

class sw_Type 
{ 
char *Id; /* required attribute */ 
struct soap *soap; /* transient */ 
}; 

のために私は

soap_instantiate__sw_Type(....) 

を使用してこのオブジェクトを作成しますが、私はcharエントリを割り当てない方法を理解することはできません。私は、char *を返すsoapを受け入れるルーチンを見つけなければならないと思います。私が使用していますかIdchar **の場合、どのように同様の割り当てを行うのですか?Id = (char *) (soap_malloc(_soapInst, sz * sizeof(char)))

+1

下の例のようなものを使用することができます。 'Id'は単なる文字列です。別の文字列 'str'に設定するには' Id = soap_malloc(_soapInst、strlen(str)+ 1) 'と' strcpy(Id、str) 'を使います。あるいは、より良いのは、ドキュメントhttp://www.genivia.com/doc/databinding/html/#memoryで議論されているように、 'Id = soap_strdup(_soapInst、str)'を使用することです。それがあなたの質問であるかどうか分かりませんか? –

答えて

0

次のようにして、char配列の長さにdefineを使用するだけです。

char * Id = (char *)soap_malloc(soap, ID_LEN); 

例ではsizeofを使用する必要はありません。しかし、オブジェクトのリストを割り当てる場合は、Nof items x sizeof(struct ..)を使用する必要があります。

char**について、あなたは文字列を指すように `のchar *`を設定に関する魔法のようなものは何もありません

char** arguments_push = (char**) soap_malloc(soap, sizeof(char*)*ARGS_NUM); 
関連する問題