我用strtok
來分割一個字符串。strtok和strcpy錯誤
[更新]我用了你的意見,回答下面的新版本,但沒有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都沒問題。
有人有想法嗎?
你怎麼知道數組是空的?我可以運行它沒有任何問題。數組split_url不是空的。 – 2011-05-01 08:42:46
有點OT,但這顯然是C++,所以爲什麼首先使用數組? – manneorama 2011-05-01 11:03:47
請不要在問題標題中添加[UPDATE]或[已解決]等狀態更新 - 問題的明確摘要就是需要的。別擔心,當你更新你的問題時,每個人都可以看到。 – razlebe 2011-05-11 11:14:38