>>360
なぜそう思った?
pの初期値はNULLでなきゃ何でもいいし、そもそも
do {
s <<= 1;
free(p = malloc(s));
} while(p);
ってやれば初期値も不要