So i have an original char * s with size of n;
Can someone show me how to create another char * p with twice the size of s?
and then fill p with 2 copy of s?
Thanks.
Hi,
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.
I am not sure if I was allowed to use that char far, since I never learned it
is it right if I do
char * p;
p = new char[2*sizeof(s)];
Hi,
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];
@OP:
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.
Got it! Thanks guys =) ♥♥
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.