【发布时间】:2011-08-16 09:11:53
【问题描述】:
我使用strtok 来拆分字符串。
[UPDATE]我使用了你的 cmets 并回答了下面的新版本,但是 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 不为空。
-
有点OT,但这显然是C++,那么为什么首先使用数组呢?
-
请不要在您的问题标题中添加 [UPDATE] 或 [SOLVED] 之类的状态更新 - 只需对问题进行清晰的总结即可。不用担心,当您更新问题时,每个人都可以看到。