У меня везде(сколько не исправляла) идет ошибка segmentation fault. Почему?

#include <stdio.h>

#include <string.h>

void    *ft_memset(void *dest, int c, size_t n)
{
    char *str;

    str = (char*)dest;

    if (!str)
        return(NULL);
    while ((n-1) > 0)
    {
        *str = (char)(c);
        str++;
        n--;
    }
    *str = '\0';
    return(dest);
}

int main(void)
{
    char *dest = "uj";

    printf("%s", (char*)(ft_memset(dest, 4, 6)));
}

Ответы (1 шт):

Автор решения: AlexGlebe

char * dest = "uj"; - указатель на строку, которая храниться в программе, и которую менять нельзя.

char dest[] = "uj"; - это уже будет новая строка в стеке, которую можно менять.

→ Ссылка