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.

Recommended Answers

All 5 Replies

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.

Hope I can answer to that question, but the problem is what does it really mean to say?

______________________________
Barhocker : Hier finden Sie eine sehr große Auswahl an Barhocker Internationaler Versand oder Abholung in Berlin.

Got it! Thanks guys =) ♥♥

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.