次の関数のMATLABでintおよびstrings配列を読み取ろうとしています。
int DLLEXPORT getdata(int *index, char *id[])
CIでは、次のコードを実行するだけで機能します。
int count;
int *index = calloc(MAXLINE, sizeof(int));
char **id = calloc(MAXLINE, sizeof(char*));
for (for i = 0; i < MAXLINE; ++i)
id[i] = malloc(MAXID);
errcode = getdata(index, id);
MATLABでは、運が悪かった次のコードを試しています。
errorcode = libpointer('int32');
index = libpointer('int32Ptr');
id = libpointer('stringPtrPtr');
[errorcode, index, id] = calllib('mylib','getdata', index, id);
すでにlibpointersを初期化しようとしましたが、同じメッセージ「セグメンテーション違反が検出されました」が表示されました。誰かが私を助けることができますか?