How about using char far *s2? Using char far will allocate 4 bytes of memory for your pointer(in simple words) which is double the size of the ordinary char pointer.
Hunh?:confused: The OP isn't talking about the size of the pointer itself (which should already be either 4 or 8 bytes by the way) they're talking about the length of the array it points to the first element of.
If the OP has an array of char that is N elements long, all they need to do is allocate a new array of size 2N
int N = strlen(s);
char *p = new char[2*N];
char * p;
p = new char[2*sizeof(s)];
I would be cautious about doing it this way. The behavior of sizeof() relative to pointers varies greatly depending on the scope of the variable used as the argument for it, especially when the variable points to an array.