Цитата(Сергей Борщ @ Feb 21 2007, 15:19)

Цитата(*SERG @ Feb 21 2007, 13:47)

Т.е. в перменной msg находиться адрес начала массива str1, так чтоли?
Нет массива str1. Не существует в С понятия "массив". Существуют лишь указатели, и благодаря записи ptr[index] которая тождественна записи *(ptr + index) они могут
казаться массивами. Поэтому str1 - это указатель, он хранит адрес того места, в котором размещена строка. Причем поскольку он у вас не константный, вы можете случайно написать str1=str2 и долго потом искать куда же делась первая строка

Цитата(*SERG @ Feb 21 2007, 13:47)

И если так, то каким образом массив из флешь в озу можно переписать?
ищите в том же pgmspace.h аналог функции memcpy.
Понятно, запишу как const char

Спасибо!
Цитата(prottoss @ Feb 21 2007, 16:00)

Цитата(*SERG @ Feb 21 2007, 18:47)

каким образом массив из флешь в озу можно переписать?
Очч просто, и не надо ничего искать
Код
void ctrcpy_F(void __flash *fptr, void *sptr){
char byte;
char *sp = (char*)sptr;
char *fp = (char*)fptr;
while(0 != (byte = *fp++))/* массив fptr обязательно должен заканчиваться нулем, а массив sptr иметь размер равный или больший размеру fptr */
*sptr++ = byte;
}
Чёт мне до таких наворотов ещё рановато, надож ещё и понимать что пишешь, что в слепую о перекатывать
Пока пишу так
__flash char END[]={0X0D,0X0A};
char temp_inf_usapp[razmer_mas]="";
strcpy_P(temp_inf_flash,END)
а потом работаю с temp_inf_flash
Или это не правельно? Копилятор вроде не ругается

И Вам спасибо!)