Я пытался устранить эту проблему и просто ничего не получилось, надеюсь, вы можете намекнуть мне в правильном направлении.У меня есть программа, в которой я инициализировал массив символов следующим образом:
char variable1[8];
И затем я пытаюсь скопировать возвращаемое значение функции, т.е.
...
strcpy(variable1, (char *)function1());
Где function1 () возвращает charзначение массиваВот структура function1:
char* function1()
{
....
char variable2[8]={'\0'};
...
return (variable2);
}
Программа падает, когда я пытаюсь выполнить строку strcpy.
Я прочитал о функции strcpy здесь , что
Важное замечание: Вы должны убедиться, что целевой буфер (s1) может содержать все символы в исходном массиве, включая завершающий нулевой байт.В противном случае strcpy () перезапишет память за концом буфера, что приведет к переполнению буфера, что может привести к сбою программы
Поэтому я попытался увеличить размер variable1 до 20, но программа все равносбои.
Помимо этого, я попробовал другой подход, то есть использовать вызов функции strncpy, и он все еще дает мне ту же ошибку.
Странно то, что я мог выполнить функцию1 (), котораявозвращает значение без проблем.Только когда я попытался скопировать его, моя программа падает.Есть идеи, что мне делать дальше?