I get the following error in my C program:
Writing to heap after end of help buffer
Can you tell me what I'm missing?
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; }
malloc(sizeof(path))does?