Question about pointer
    Ying Zhu ee 
    yxz1684 at hertz.njit.edu
       
    Sat Mar  2 02:46:59 AEST 1991
    
    
  
The following is a small program from "Mastering C pointers" by Robert J.
Traister. I am confusing with the pointer here. Since the r[100] is an
automatic variable, after calling the "combine" the r[100] will be deallocated.
Then the p will point to an unsafe place. Actually, runing this program
on VAXII/GPX(ULTRIX) and Sparc( BSD UNIX ) here have different answers. Any
one familiar with C  can help me? Thank you!
main()
{
    char a[10], b[10], *p, *combine();
    strcpy( a, "horse" );
    strcpy( b, "fly" );
    p=combine(a, b);
    printf("%s\n", p );
}
char *combine(s,t)
char *s, *t;
{
     int x,y;
     char r[100];
     strcpy(r,s);
     y=strlen(r);
     for ( x=y; *t != '\0'; ++x )
         r[x] = *t++;
     r[x]='\0';
     return(r);
}
    
    
More information about the Comp.lang.c
mailing list