Здравей ,
По своята същност декларацията по този начин на масив ( char a[10]; ) представлява следното:
- Това нещо отива в стека и там се заделя памет за него
- а е указател към началот на тази памет, затова всички операции, който правиш с указателите са позволени като например а+1 или 1[a] това ще те ти даде стойността на елемента с индекс 1
- от друга страна декларирано по този начин ти заявяваш че този указател е константен т.е не можеш да применяш адреса към който сочи.
Следователно това няма да сработи b = a ; Предвид че и двете са константи указатели няма как да им промениш адресите.
Решение :
1. използване както беше споменато по горе memcpy(b,a,10);
2. собствена имплементация на обхождане на масивите и копиране на елементите от единия в другия
3. декларираш си един указател и го насочваш към вече въведения масив от символи
#include "stdio.h"
int main(int argc , char** argv)
{
char a[10],*b;
b=a;
return 0;
}