хахах е ка да няма ралика бе момче :? 

'>
Ок , сериозно, спокойно, горното хаха беше напълно дружелюбно
Гледай сега ... указтелят сочи , нали така 

'>
ОК да кажем сочи адрес памет (не е NULL) , на този адрес да кажем имаме
първа клетка текущ адрес ,после нататък са друите все едно ++ ;-) 
и така:
0x65 | 0x64 | 0x68 | 0x65 | 0x00
т.е 

'> ако клетка 1-ва е номер 0x2ff384 от твоята физ. памет на PC-то , то последнат е 0x2ff388 ;-) 

'>
ок 

'> ?
Такааа и сега , казваш на твоята програма/компилатор
от този адрес чети като стринг , какво прави 

'> ? 

'>
Ми почва 0x65 май беше 'a' латинско 

'>
и т.н, докато не срещне какво 0x00 -> \0 или нулиране на низа 

'> 
такаа 

'>
За това на теб ти трябва точно указател !
Указател който да каже на този адрес ПОЧВА един СТРИНГ ! или нещо, което (се опитай) да покажеш като стринг 

'>
А в твоят вариант какво казваш
искам един статичен масив, на КОЙТО ОБАЧЕ ти да определиш сам колко памет/място ти трябва за char-чета , защото аз искам така да ми е по-гъвкаво
аз да си сменям съобщението без проблем
т.е
вместо:
char[4]="wow"; // 3ch + \0 ;-)
char[3]="ohhhh"; // problem 

'>
ти казваш:
char[] = "wow";
а като решиш да го променяш искаш да  е
char[] = "ohhhh";
Обаче в твоят случей Е ДРУГО !!!!! онова е за статични декларации + дефиниции в 99% от случеите 

'>
даже си личи малко , че не знаеш на 100% как стоят нещата за предаване на аргумент и по-точно на масив или масив от данни, да кажем че имаш списък (линеен или нещо си , база данни) ?
какво ще правиш :? :-)
char mystr[10] = "something";
myfunc(mystr);
и прототип на функ : )
void myfunc(char newstr[10]);
двойно памет за нищо 

'>
- е да , може да искаш да запазиш променливата от промени, но 60/40% от случеите искаш обработка 

'> така че УКАЗТЕЛ 

'>
това е 

'>
успех и се радвам ,че напоследък виждам не просто въпроси за програмиране, ами че хората борят по открито (в БГ)
SDL, GTK, kernel-source/hack/modules 
 
'> и т.н 

'>
хубаво е 

'> да има такива теми 

'>
Айде :-) чао засега.