Go Down

Topic: Assigning char arrays (Read 853 times) previous topic - next topic

KevinT

Hi,
as memory is critical for me I want to use limited char arrays instead of Strings, but how do I pass on such a char array?

That is what I am trying to do:
Code: [Select]

char arrTest1[10];

void assign(char arrTest2[10])
{
  arrTest1 = arrTest2;


void loop()
{
assign("Name");
// arrTest1 should  now be "Name"
}


Is there a way to do it or do I have to use Strings instead?

Kevin

Code: [Select]

char arrTest1[10];

void assign(char* arr)
{
  strcpy(arr, "Name");


void loop()
{
assign(arrTest1);
// arrTest1 should  now be "Name"
}

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

KevinT

Thanks, that is one step in the right direction,  but I need the assign function the other way around. Giving it the "Name".

I tried to adapt your code - this should do:

Code: [Select]

char arrTest1[10];

void assign(String Test2)
{
  char chTest[10];
  Test2.toCharArray(chTest, 10);
  strcpy(arrTest1, chTest);


void setup()
{
}

void loop()
{
assign("Name");
// arrTest1 should  now be "Name"
}


Thanks,
Kevin

majenko

Code: [Select]

char arrTest1[10];

void assign(char *arrTest2)
{
  strcpy(arrTest1,arrTest2);


void loop()
{
assign("Name");
// arrTest1 should  now be "Name"
}


Or, you can pass both:

Code: [Select]

char arrTest1[10];

void assign(char *dest,char *arrTest2)
{
  strcpy(dest,arrTest2);


void loop()
{
assign(arrTest1, "Name");
// arrTest1 should  now be "Name"
}


Or you can simplify it and forget the function entirely:

Code: [Select]

strcpy(arTest1,"Hello");

Go Up