Saturday, October 17, 2009

strlen() vs sizeof()

//sample
char a[] = "1234567890";
char b[20] = "1234567890";
char *c = malloc (sizeof(char) * 1024);
strcpy(c, "0123456789");

//result
sizeof(a) = 11 // 10 + '/0'
strlen(a) = 10

sizeof(b) = 20
strlen(b) = 10

sizeof(c) = 4 //sizeof char pointer
sizeof(*c) = 1 //sizeof first element char type

No comments:

Post a Comment