This topic is now archived and is closed to further replies.

Mr Cucumber

Weird problem

Recommended Posts

I wrote this code:
char *str = "AAA";
int length = strlen(str);
LOG("Length of the string %d", length);

char *array = NULL;
array = new char[length];

int length_2 = strlen(array);
LOG("Now the length is %d", length_2); 
The first log produced this result: Length of the string 3 The second log produced this result: Now the length is 7 7? I tried different lengths of the string called str and the second log always produced a result which was four characters longer that the original string. Does anyone what the cause of this could be?

Share this post

Link to post
Share on other sites
strlen works by finding the first NULL character from the beginning of the array to tell you the string length. You just allocated 3 bytes of data, and who knows what''s in that memory.
strlen doesn''t return how much memory is allocated to an array, it returns the number of characters from the start of the array to the first NULL character.

Share this post

Link to post
Share on other sites