文字strtok
列を分割していました。
[更新]以下の新しいバージョンのコメントと回答を使用しましたが、ATM が機能しませんでした
int Crawl :: splitUrl(char ***tmp, int max_length, char *url)
{
int idx=0;
char * p;
int i;
p = strtok (url,"/");
while (p != NULL && idx < max_length)
{
for (i=0;i<maxUrlSize-1 && p[i] != '\0';i++)
(*tmp)[idx][i] = p[i];
for ( ; i< maxUrlSize-1;i++)
(*tmp)[idx][i] = '\0';
printf("tmp[idx[%d]] %s\n",idx,(*tmp)[idx]);
idx++;
p = strtok (NULL, "/");
}
return idx;
};
はprintf("tmp[idx] ...
正しく印刷されます。
しかし、メソッドを実行した後のメインでは:
split_url = new char * [ maxUrlSplits ];
for (int k=0;k<maxUrlSplits;k++)
split_url[k] = new char [maxUrlSize];
arr_size = crawl->splitUrl(&split_url,maxUrlSplits,url);
配列split_url
は空です。
コンパイラと gdb は問題ありません。
誰かがアイデアを持っていますか?