Sari la conținut
ELFORUM - Forumul electronistilor

nume variabila-dinamic


Gilbert Sparios

Postări Recomandate

Acum 24 minute, bcristian a spus:

Nu functioneaza asa, sau nu daca compilatorul functioneaza conform specificatiilor c/c++ :D

Asignarea face cast la tipul membrului a carui valoare se seteaza, nu scrie in memorie incepand de acolo ce valoare ii dai.

 

Exact asa functioneaza... daca nu ma crezi e interesant de incercat. Mi-au iesit fire albe pe un ESP32, aveam un struct care continea un array si niste variabile, array-ul era definit cu 4 elemente in loc de 5 (greseala) ghici ce se intampla cand codul scria in array pe pozitia 5 ? Se baga peste variabilele declarate dupa (uint16_t) si ma miram ce se tot intampla ca dupa umplerea array-ului se buleau variabilele de langa, de fapt lua valoarea care era scrisa in "array" pe pozitia 5. Arduino IDE este de toate numai ceva "profi" nu, in anumite cazuri se comporta aiurea.

Editat de Bandi Szasz
Link spre comentariu
  • Răspunsuri 19
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

@Bandi Szasz La folosirea de indexi aiurea in array-uri clasice nu te protejeaza limbajul, si efectul la care te referi e normal.

Valabil si pentru jonglerii gresite cu pointeri.

 

struct A
{
	uint16_t a, b;
};
A a;
a.b = 0x2222;
a.a = 0x1ABCD; // iti da warning, la runtime a.a va fi 0xABCD, a.b va fi tot 0x2222
auto *p = (uint32_t*)&a.a; // in functie de optiuni, te poti alege cu warning si la asta
*p = 0x1ABCD; // nedefinit de standard, dar cel mai probabil te vei alege cu a.a = 0xABCD, a.b = 0x0001
// Daca faci jongleria cu variabile locale in loc de membri in structura, rezultatul (tot nedefinit de standard) depinde de compilator.

 

@Gilbert Sparios stii ca indexii valabili intr-un array byte b[10] sunt de la 0 la 9, da?

 

Editat de bcristian
Link spre comentariu

absolut da.  imi trebuie packet pentru ca fac CRC16 ... si nu merge fara o structura cunoscuta.

sunt mai multe platforme...in fine.. important ca merge asa cum e.

 

ce spunea bandi acolo mi s-a intamplat si mie la inceput, ceva de genul ca am pus un egal intr-un for 

  for .... (i<=x) si aia a fost suficient dar nu e cazul acum..

 

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări