Hallo
Ik loop een beetje tegen een programmeerkennis muur aan
, hopelijk kunnen jullie mij hiermee helpen.
Ik wil diverse plaatjes inladen vanaf een sd kaart om op het juiste moment op een scherm te laten zien. Het gaat om teveel data om in ram te laten staan, dus moet het anders.
Nu heb ik per "schermelement" een struct met data over het element (bijvoorbeeld, afmetingen, beginlocatie etc). Echter is er van tevoren niet bekend hoe groot de array van element structs wordt. En daar gaat het mis voor mij.
Er zijn meerdere soorten elementen, maar ik houd het nu even bij 1.
De struct voor een plaatje heb ik als volgt gedefinieerd:
In de main routine wordt hiervoor een array gedeclareerd, maar doordat de benodigde lengte niet bekend is nog niet geinitialiseerd:
Mijn idee was als volgt:
Hier loopt het al stuk. Ik krijg het maar niet voor elkaar.
Voordat ik nog uren ga zitten staren, kan wat ik wil wel?
mijn programmeerkennis wordt hier duidelijk flink gestretcht.
alvast bedankt
Tim
Ik loop een beetje tegen een programmeerkennis muur aan

Ik wil diverse plaatjes inladen vanaf een sd kaart om op het juiste moment op een scherm te laten zien. Het gaat om teveel data om in ram te laten staan, dus moet het anders.
Nu heb ik per "schermelement" een struct met data over het element (bijvoorbeeld, afmetingen, beginlocatie etc). Echter is er van tevoren niet bekend hoe groot de array van element structs wordt. En daar gaat het mis voor mij.
Er zijn meerdere soorten elementen, maar ik houd het nu even bij 1.
De struct voor een plaatje heb ik als volgt gedefinieerd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| typedef struct image_element { unsigned char conditional; unsigned char datafield; unsigned char comparisonType; unsigned char compareValue; unsigned char *filename; unsigned char active; unsigned short xSize; unsigned short ySize; unsigned short xStart; unsigned short yStart; }screen_image_element; |
In de main routine wordt hiervoor een array gedeclareerd, maar doordat de benodigde lengte niet bekend is nog niet geinitialiseerd:
code:
1
| screen_image_element image_elements[]; |
Mijn idee was als volgt:
code:
1
2
3
4
5
6
7
| Een functie parst de data in een bestand naar een tijdelijke screen_image_element struct (dit werkt). Als image_elements[] nog leeg is (wordt apart bijgehouden) wil ik hem dan initialiseren. idee 1:image_elements = tijdelijke_struct (met het idee dat het dan een 1-velds array wordt, maar werkt niet) idee2: image_elements = malloc(sizeof(tijdelijke struct) image_elements[0] = tijdelijke struct idee 3: image_elements = realloc(image_elements, sizeof(tijdelijke stuct) image_elements[0] = tijdelijke struct |
Hier loopt het al stuk. Ik krijg het maar niet voor elkaar.
Voordat ik nog uren ga zitten staren, kan wat ik wil wel?
mijn programmeerkennis wordt hier duidelijk flink gestretcht.

alvast bedankt
Tim