У меня везде(сколько не исправляла) идет ошибка 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"; - это уже будет новая строка в стеке, которую можно менять.