Pages: [1]   Go Down
Author Topic: Assigning char arrays  (Read 693 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Full Member
***
Karma: 0
Posts: 110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3221
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
char arrTest1[10];

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


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

Logged

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).

Germany
Offline Offline
Full Member
***
Karma: 0
Posts: 110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
Logged

UK
Offline Offline
Faraday Member
**
Karma: 99
Posts: 4153
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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:
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:
strcpy(arTest1,"Hello");
Logged

Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

Pages: [1]   Go Up
Jump to: