Я новичок в C и пытаюсь понять основные понятия в C, Как когда и почему мне нужно выделить память для указателя на строку. здесь у меня есть пример программы. Я прокомментировал в соответствующих местах. Пожалуйста, помогите мне понять.Динамическое распределение памяти - когда и почему
/ Please help me understand why do I have allocate Memory in Case 2 while I don't have to in Case 1.
#include<stdio.h>
void xcopy(char *t,const char *s);
int main(int argc, char const *argv[])
{
char name1[]="Asfakul";
char *name;
char *target;
name=name1; // Here I dont have to allocate Memory (Case 1)
puts(name);
target=(char*)calloc(10,sizeof(char)); // Here I have to allocate Memory (Case 2)
xcopy(target,name);
return 0;
}
void xcopy(char *t,const char *s)
{
while(*s !='\0')
{
*t=*s;
t++;
s++;
}
puts(t);
}