Я работаю над некоторым кодом, беря строку в качестве ввода и возвращает ее в обратном порядке.Abort trap: 6 in C при использовании strcpy на MacOS
Когда я ввожу строку, я получаю ошибку «прерывание ловушки: 6». Я думаю, что проблема в моем использовании (неправильное использование?) Strcpy, но GDB не помогает, и другие вопросы о SO об этой ошибке и strcpy не помогли мне понять, почему я получаю эту ошибку.
Я добавил несколько комментариев в свой код, объясняющий предполагаемую функциональность.
Благодарим за помощь или материал для чтения, который вы можете предоставить!
#include <stdio.h>
#include <string.h>
int main()
{
char line[1024];
fgets(line,sizeof(line),stdin);
int size = strlen(line);
for(int I = 0; I <size-I;I++)
{
char temp;
int relative_size = size-I;
strcpy(&temp,&line[I]);//??copies Ith character of line to temp??
strcpy(&line[I],&line[relative_size]); //??swaps characters at [I] and [size-I]??
strcpy(&line[relative_size],&temp);
}
printf("%s", line);
return 0;
}
'int relative_size = size-I;' -> 'int relative_size = size-I-1;', 'strcpy (& temp, & line [I]);' -> 'temp = line [I]; 'и так далее. – BLUEPIXY
@BLUEPIXY, который отлично работает! Спасибо большое. – Luciano