У меня есть несколько вопросов, касающихся ошибки сегментации. Почему при отладке моего кода все в порядке, но после освобождения возникает ошибка сегментации? Я читал в Интернете, где говорится, что отладка заставляет код работать в правильном порядке, так как я следую курсу cs50 для массивов, мои знания в области кодирования еще только там. Пожалуйста, оставьте отзыв о моем коде, я пытаюсь найти способы улучшить мой очень длинный и неопрятный код. Большое спасибо.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <cs50.h>
#include <string.h>
int main(int argc, string argv[])
{
if (argc != 2)
{
printf("Usage: ./caesar key\n");
return -1;
}
int n = strlen(argv[1]);
for (int z = 0; z < n; z++)
{
if (isalpha (argv[z]))
{
printf("Usage: ./caesar key\n");
}
}
if (argc == 2)
{
{
int key = atoi(argv[1]);
string plaintext = get_string("Plaintext: ");
int y = strlen(plaintext);
printf ("Ciphertext: ");
for (int i = 0; i < y; i++)
{
if (key >= 26)
{
printf("%c", (char) plaintext[i] + (key % 26));
}
else if (key < 26)
{
printf("%c", (char) plaintext[i] + key);
}
}
}
}
return 0;
}