I want to create a new array with the same size of “chaine” but only after the function
char chaine[Lenght]; //Lenght = 20
function(chaine, sizeof(chaine));
When I called “function” the size of “chaine” is changing randomly.
The new array “chaine2″ also needs to be full of ” * ” characters.
Let met try to explain with some printf :
printf("chaine = %s\n", chaine);
will show on screen something like : chaine = WORDS (5 characters)
And i want “chaine2” to be shown like this : chaine2 = ***** (5 stars)
I apologize for my english, thank you for reading
Remember that
chararrays are special, in the sense that they have a size, which you specify when you declare them, and a length, which depends on their contents. The size of an array is the amount of memory that’s been allocated to it. The length of a string is the number of characters before a terminating null ('\0').When you pass an array to a function, it’s treated like a pointer. So
sizeof(str)inside the function will always return the size of pointer-to-char, and not the size of the original array. If you want to know how long the string is, make sure it’s null-terminated and usestrlen()like this: