Coding in C, I'm having an issue with user input. Sometimes, the input works and sometimes it doesn't.
Example run output from terminal:
dennis@MBP2021 Encryption % make
cc Gronsfeld_Cipher.c /Users/dennis/Documents/C/programs/DJSlibrary/cs50.c -o cipher
dennis@MBP2021 Encryption % ./cipher 
Please enter line to be encoded: This, however, is not the time.
You entered: This, however, is not the time. Length: 31
The message is:  This, however, is not the time.
The cipher is:   EZNH, SCVKOHZ, KF UFP GXF ONWX.
The decipher is: THIS, HOWEVER, IS NOT THE TIME.
dennis@MBP2021 Encryption % ./cipher
Please enter line to be encoded: This, however, is not the time, nor the place to have fun.
You entered: This, however, is not the time, nor the place to have fun. Length: 58
zsh: trace trap  ./cipher
dennis@MBP2021 Encryption % 
code snippet:
char data[] = "Dummy";
int keys[] = {11, 7, 13, 10, 25, 9, 8, 3};  
// Do the stuff
int main(void)
{   
    // Get input from user
    char *string_input = NULL;
    size_t string_size = 250;
    ssize_t bytes_read;
    printf("\nPlease enter line to be encoded: ");
    string_input = (char *) malloc(string_size);
    bytes_read = getline(&string_input, &string_size, stdin);
    if(bytes_read < 2)
    {
        printf("\n\nNo input was entered. Program terminating.\n");
        printf("Error Code: 1\n\n");
        free(string_input);
        return 1; 
    }
    string_input[bytes_read-1] = 0; // Clear out the new line.
    
    printf("\nYou entered: %s Length: %ld\n", string_input, bytes_read-1);
    strcpy(data, string_input);
    free(string_input);
    // Get sizes
    int DataLen = strlen(data);
    int ks = sizeof(keys) / sizeof(keys[0]);
    printf("\nThe message is:  %s", data);
According to what I see on the terminal, it dies at the strcpy (I guess) The line string_input[bytes_read-1] = 0; // Clear out the new line is trying to remove the line feed at the end of the string input. It never gets to the last printf. I don't understand why it worked with a small line (31 bytes) and not the 58 byte line. I tried to use debug in vscode, but it doesn't allow me to enter an input line. Something else I need to find out. Also, I'm new to C programming. Thanks in advance.
 
    