Comunicação L2C entre dois arduinos com dados variáveis

Estou tentando fazer uma comunicação entre dois arduinos através de L2C.
Eles se comunicam, o Mestre envia o comando o escravo recebe e consigo requisitar os dados do escravo pelo mestre.
A dúvida é o seguinte.
Os dados retornados pelo escravo não são fixos, a resposta do escravo pode variar, de 2 a 50 caracteres.
Como a função wire.request precisa da quantidade de caracteres a serem recebidos, estou colocando um comando que ira indicar que o mestre quer
saber quantos caracteres serão recebidos, o escravo responde e depois com uma nova wire.request do mestre o escravo retornaria os dados.
Mas não achei uma maneira de criar um char que fosse dinâmico, então quando no mestre eu usar o wire,avalaible() eu precisava armazenar o retorno em uma váriavel.
Alguém chegou a implementar algo parecido ou vou ter que declarar um char de 255 e tratar o comprimento dos dados recebidos através do número de caracteres recebidos do escravo pelo mestre?

Se eu compreendi bem, tu não queres ter 50 e tal bytes perdidos em memória sem saber se vais usá-los ou não. Queres definir o tamanho dum vector em "real time", após saberes qual o tamanho que vais precisar, é isso?

Já viste o malloc(), realloc() e free()??

http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga4996af830ebe744d9678e5251dfd3ebd
http://www.nongnu.org/avr-libc/user-manual/malloc.html

bubulindo:
Se eu compreendi bem, tu não queres ter 50 e tal bytes perdidos em memória sem saber se vais usá-los ou não. Queres definir o tamanho dum vector em "real time", após saberes qual o tamanho que vais precisar, é isso?
...

Havia me esquecido dessa abordagem.
Vou tentar com isso em vez da forma atual que é com String.

mmoscz:
Havia me esquecido dessa abordagem.
Vou tentar com isso em vez da forma atual que é com String.

String... blarghhh.
Não me leves a mal, mas a implementacão da String não é para microcontroladores. Ela ocupa imensa memória e processamento apenas para "poupar" umas linhas de C e apontadores.

[/quote]

bubulindo:
String... blarghhh.
Não me leves a mal, mas a implementacão da String não é para microcontroladores. Ela ocupa imensa memória e processamento apenas para "poupar" umas linhas de C e apontadores.

Ha ha ha ha ha, estou tentando, mas o downgrade para microcontroladores é bem difícil para quem está acostumado como PHP e DELPHI, a verdade, nem precisaria ser dinâmico, pois sempre posso controlar a transferência das informações em "BLOCOS" como meu controle não precisará controlar em milésimos de segundos as ações a serem tomadas, posso perder alguns ciclos enviando em partes. Era mesmo para saber se existiria algo no meio termo entre a família xxxloc (maloc, freeloc etc) e as Strings.
Pois achei a implementação da biblioteca I2C meio fraca (pois para passar um int tem q transformar em char antes) e todos as implementações que vi na internet parecem superficiais...
PS. Espero estar equivocado quanto a biblioteca I2C

Entre ficar com "leveza" do reference do arduino e decifrar o datasheet do ATmega, esse cara que faz parte do forum, aborda de forma simples e clara esse assunto:

Aqui aborda mais coisas:

EDIT: busque por "Broadcasting" na primeira pag que ele aborda a questão do int sendo enviado.