Redefiniowanie tablicy znaków char

0

Witam

Jeszcze przed funkcja main definiuje tablice znaków char która ma zostać nadana po podłączeniu urządzenia do PC.
Dane z tablicy wysyłam poprzez UART (RS232 konwertowany na USB) do PC znak po znaku w petli for.
Wygląda to następująco:

	char bufor_nad[35] = "Wcisnij T by odebrac dane\r\n\0"; 	//
 
 
        wlacz_UART1();					//  Wlacz UART1 do komunikacji z PC przez FTDI

        for (i=0;i<=(sizeof(bufor_nad));i++)		// Nadaj tekst 
        {							//
            nadaj_UART1(bufor_nad[i]);		//
        }							//
        

Za chińskiego boga nie mogę wymyślić jak zmienić zawartość tablicy bufor_nad bez użycia pętli for i zmieniania każdej komórki z osobna. Zasadniczo chce osiągnąć coś w ten deseń:

	char bufor_nad[35] = "Inny tekst niz poprzednio\r\n\0"; 	//

Da się to zrobić stosując druga tablice po prostu z innym tekstem, ale szkoda mi pamięci RAM na to, druga opcja to zmiana komórki jednej po drugiej w petli ale to z kolei marnuje pamięć programu.

Ma ktoś pomysł jak jeszcze można to zrobić - tzn zmienić zawartość tablicy znaków bez definiowania kolejej tablicy i używania petli for/while.

0
#include <stdio.h>
#include <string.h>
int main(void) {
	char text[64] = "Hello";
	printf(text);
	strcpy(text, " World!");
	printf(text);
	return 0;
}

http://ideone.com/APLXcG

0
Wielki Mleczarz napisał(a):

druga opcja to zmiana komórki jednej po drugiej w petli ale to z kolei marnuje pamięć programu.

Chodzi Ci o zwiększenie wielkości programu o kod maszynowy pętli? Jeżeli nie chcesz robić czegoś takiego

buf[0] = 'J';
buf[1] = 'a';
buf[2] = 'k';
buf[3] = 'i';
....

to chyba nie masz innej opcji jak zmaronować kolejne 35 bajtów RAMu i mieć "Jakiś inny tekst\r\n\0" i zrobić strcpy albo coś podobnego

0

Tak tez mi się wydawało, jak odszedłem na chwile od komputera to doszedłem do wniosku, że nie ma co tak kurczowo się trzymać tych kilku bajtów :) co prawda to mikrokontroler ale jakoś sobie z tym poradzi chyba.

Dziękuje za odpowiedzi i zainteresowanie

1 użytkowników online, w tym zalogowanych: 0, gości: 1