does anyone have any idea why this gives a segmentation fault?
(and please tell me why)
Code:
char *cut(char *instr, char delim, int field, int blen)
{
printf("monkeys\n");
int i=0,curfield=0,startindex=0,len=str_length(instr);
char *outstr;
outstr = (char*) malloc ( sizeof(char) * str_length(instr) );
//printf("monkeys\n"); ( if i have this here, it runs... if it is commented out it has a seg fault )
while( (instr[startindex]!='\0') && (curfield!=field) && (i<len) )
{
if(instr[startindex]==delim)
curfield++;
startindex++;
}
if(blen==0)
{
i=0;
while( (instr[startindex+i]!=delim) && (startindex+i<len) && (i<str_length(instr)) )
{
outstr[i]=instr[startindex+i];
i++;
}
}
else if(blen>0)
{
i=0;
while( (instr[startindex+i]!=delim) && (i<blen) && (startindex+i<len) && (i<str_length(instr)) )
{
outstr[i]=instr[startindex+i];
i++;
}
}
outstr[i] = '\0';
printf("monkeys\n");
return outstr;
}