[ Predrag Damnjanovic @ 09.01.2003. 18:42 ] @
Nešto mi ovde nije jasno:
Code:

void fja (char **p)
{
*p=(char *)malloc(10);  // ovo je OK
strcpy (*p, "Cao!");    // takodje OK
*p[3]='s';   // ovo ne radi, zašto?
p[0][3]='s';   // ovo radi ono što je prethodna linija trebala da uradi
}

int main ()
{
char *buffer;
fja (&buffer);
}


Prvo, zašto ono *p[3] ne radi posao?
A drugo, kako to da p[0][3] ukazuje na ono na šta bi *b[3] trebalo da ukazuje?
[ Časlav Ilić @ 09.01.2003. 20:13 ] @
Problem je u prioritetu operatora: kompajler to tumači kao *(p[3]), a tebi treba (*p)[3].
[ filmil @ 09.01.2003. 20:16 ] @
Operator [ ] ima veći prioritet od *. Treba ti: (*p)[3].

f

http://www.gsp.com/cgi-bin/man.cgi?section=7&topic=operator