0
Issue generating ASCII characters
I have an issue with a code that generates ASCII characters to create a password. The length of said password is defined by the user. Sometimes (especially with length values such as 7, 8, 9 and 10), the code generates more than the requested characters until it reaches a length of 11 characters. Often, among these extra characters, the ASCII character 18 () is found. Does anyone know how I can treat this problem? Code: https://code.sololearn.com/cnjCaDP4qnHl/?ref=app
2 Answers
+ 3
The last character of a string has to be a null character ('\0'). This indicates the end of the string. If there isn't one, printf just keeps trying to print what is in memory until it does find a null byte.
char passwrd[len+1];
passwrd[len] = '\0';
Also, this code wouldn't work outside of Sololearn. To set the length of your array at runtime, you would normally have to use a dynamic array, with memory assigned via malloc().
0
Thank you so much @Zen.
I have made the necessary changes to my code and it works perfectly.