【发布时间】:2009-10-09 13:24:15
【问题描述】:
我在C 程序中收到以下错误:
你能告诉我我错过了什么吗?
char * path_delimiter(char * path)
{
int i = 0, index = 0, size = 0, length = (int)strlen(path);
char *tmp, *ans;
for(; i < length; i++) {
if(path[i] == PATH_DELIM[0]) {
break;
}
}
i++;
size = (int)strlen(path) - i;
ans = (char*)malloc(sizeof(path));
tmp = (char*)malloc(size);
strcpy(ans,path);
ans[i-1] = END_ARRAY;
if(size > 0)
{
strcpy(tmp,&path[i]);
realloc(path,size);
strcpy(path,tmp);
}
else
{
strcpy(path,ans);
}
free(tmp);
return ans;
}
【问题讨论】:
-
请编辑以格式化您的代码:单击 1010 链接并将每个代码行缩进 4 个空格 - 更多以显示代码内的缩进。
-
了解您要做什么会有所帮助。例如,你认为
malloc(sizeof(path))做了什么?