Advertisement

Weird problem

Started by July 21, 2001 05:08 PM
2 comments, last by Mr Cucumber 23 years, 7 months ago
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?
You did not terminate array with ''\0''...Could that be it ?
-------------Ban KalvinB !
Advertisement
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.
Thanks!

This topic is closed to new replies.

Advertisement