【发布时间】:2014-03-27 05:38:10
【问题描述】:
我在编写带分隔符的字符串拆分函数时遇到问题。我的功能基于此处的主要功能:http://www.cplusplus.com/reference/cstring/strtok/。
当我通过 main 测试它时,我只能传递 char[],但不能传递 char*。传递 char* 时,程序段出错。
即通过 str_split 传递一些 char str[] 有效,但不是一些 char* str。任何帮助将不胜感激。
char** str_split(char* str, const char* delim)
{
char* tmp;
char** t = (char**)malloc(sizeof(char*) * 1024);
char** tokens = t;
tmp = strtok(str, delim);
while(tmp != NULL)
{
*tokens = (char*)malloc(sizeof(char) * strlen(tmp));
*tokens = strdup(tmp);
tokens++;
tmp = strtok(NULL, delim);
}
return t;
}
【问题讨论】: