Мне нужно написать функцию, которая воспроизводит поведение strcpy в c https://www.tutorialspoint.com/c_standard_library/c_function_strcpy.htm
Если я правильно понимаю эту функцию, она копирует строку символов из ячейки памяти источника в ячейку памяти назначения и возвращает указатель на ячейку памяти назначения.
Вот код, который я произвел:
#include <stdio.h>
char *ft_strcpy(char *dest, char *src)
{
char *mem = dest;
while (*src != '\0')
{
*dest = *src;
src++;
dest++;
}
*dest = '\0';
return mem;
}
int main()
{
char word[5] = "word";
printf("%s \n", word);
printf("word address is %p \n", word);
char *dest;
printf("dest address is %p", dest);
ft_strcpy(dest, word);
while (*dest != '\0'){
printf("%c", *dest);
dest++;
}
}
Чтобы проверить мой код, я объявил массив слов word, содержащий слово и указатель * dest.
Однако, когда я запускаю свой код, я получаю ошибку сегментации 59873. Я понял, что именно эта строка отвечает за ошибку:
*dest = *src;
Однако я не понимаю, что не так с этой строкой. Для меня эта строка означает «скопировать значение, на которое указывает указатель src, в область памяти, на которую указывает dest».
Может кто-нибудь объяснить, что не так с этим кодом