simple c question

Reuti reuti@staff.uni-marburg.de
Sat Sep 11 21:41:00 GMT 2004


Hi there,

>/////////////////////////////////////////////////
>
>// string.h included of course...
>
>char * GetPath (char * string)
>{
>	char * path;
>	int i, pos=-1;
>	
>	for(i=0;string[i]!=0;i++)
>	{
>		if(string[i]=='/')
>			pos=i;
>	}
>
>	if(pos==-1)
>		return NULL;
>	
>	strncpy(path, string, pos+1);
>	
>return path;
>}
>
>////////////////////////////////////////////

you are not allocating any memory for *path (it's just a pointer), where the 
strncpy could copy anythinkg to.

void GetPath (char* string, char* result)
{
    char *path;

    strcpy(result, string);
    path=strrchr(result, '/');
    if (path==NULL)
        result[0]=0;
    else
        *(path+1)=0;
}

Greetings - Reuti

PS: Once upon the time a lived at the Umstraße...



More information about the Gcc-help mailing list