c - 如何创建正确的数组,可以通过char **进行引用以将参数传递给LSF-API

我想使用一个小的C包装器来访问一个所谓的LSF-APILSF是“负载共享设施”,类似于在各种机器上分派计算作业的平台(由IBM创建)。
通过填充数据结构并将其传递给LSF,我了解了如何完成基本的提交工作但是当我试图用更多定义的属性来指定这个数据结构时,我遇到了一个与基本C问题相关的问题。
我要指定一个主机名列表,作业应发送到该列表。
根据API,这是通过这两个字段完成的:

char **     askedHosts -> The array of names of invoker specified candidate hosts. The number of hosts is given by numAskedHosts.
int     numAskedHosts  -> length of the previous array

这让我头疼:
我假设,我需要创建一个以主机名为字符串的数组,指定它们的数量并以某种方式将其传递给我的数据结构:
char *myHostArray[] = {"hostname_1","hostname_2","hostname_3"};
int numberOfMyHosts = 3;
myDatastructure.askedHosts = myHostArray;
myDatastructure.numAskedHosts  = 3;

但不管我怎么做,都没用所描述的变体是唯一一个,其中编译至少是成功的,并且在运行时不会出现“分段错误”。
但最终信息似乎没有正确传递,因为它对作业调度没有影响。
我想我是把指针弄乱了。
你知道我怎样才能正确地传递这个数组吗我尝试了很多变化,但在下班后没有成功。
你知道我在这里会做错什么吗?
顺便说一下,API引用可以在这里找到(我指的是“submit”数据结构):
https://www.ibm.com/support/knowledgecenter/en/SSWRJV_10.1.0/api_reference/index.html

最佳答案

对于任何可选参数,请求必须说明是否使用此选项options结构中的submit确实具有标志

#define SUB_HOST   0x04
Flag to indicate numAskedHosts parameter has data.

Equivalent to bsub -m command line option existence.

你必须这么做
    submit.options |= SUB_HOST;