Guten Tag,
ich sitze gerade an einem Projekt und habe mich irgendwie festgefahren.
Ich habe folgende Strukturen und eine Funktion:
1 | typedef struct item item_t;
|
2 | typedef struct telegram telegram_t;
|
3 |
|
4 | struct item{
|
5 | uint8_t data;
|
6 | item_t *pNext;
|
7 | };
|
8 |
|
9 | struct telegram{
|
10 | uint8_t targetADR;
|
11 | uint8_t returnADR;
|
12 | uint8_t cmd;
|
13 | uint8_t length;
|
14 | item_t *pData;
|
15 | uint8_t checksum;
|
16 | };
|
17 |
|
18 | item_t* addLink( uint8_t newData ){
|
19 | item_t* newItem = malloc(sizeof(item_t)); // reserve memory
|
20 | newItem->data = newData; // set data field
|
21 | newItem->pNext = NULL; // end of the list
|
22 | return newItem;
|
23 | }
|
24 |
|
25 | ....
|
26 |
|
27 | telegram_t newTelegram;
|
28 | telegram_t *pNewTelegram = &newTelegram;
|
29 |
|
30 | ....
|
31 |
|
32 | if(!(pNewTelegram->length == 0x00)){
|
33 | item_t* pCurrentItem = pNewTelegram->pData;
|
34 | for ( uint8_t i = 0; i<pNewTelegram->length; i++ ){
|
35 | (in die hier gespeicherte Adresse)pCurrentItem = addLink(Daten);
|
36 | pCurrentItem = pCurrentItem->pNext; //Zeige auf Adresse für nächstes Datenfeld
|
37 | }
|
38 | }
|
Der in der Struktur definierte Zeiger auf ein Element vom Typ item_t
soll mit reserviertem Speicher gefüllt werden und eine Anzahl weiterer
Datenfelder dranhängen, so dass eine Liste variabler Länge an dieser
Struktur hängt. Ich habe sämtliche * & Kombinationen ausprobiert so das
ich mich jetzt in meinen Gedankengängen selber überschlage ... es wäre
nett wenn mir kurz jemand behilflich sein könnte.
Ich bitte um konstruktive Hilfe, boar bist du doof hilft mir leider
nicht weiter ;=)
Gruß
Patrick