Abend, ich habe ein Problem in meinem Code. Der Compiler wirft mir kein Fehler aber das Programm hängt sich nach einer Zeit auf. Bin nun auf der Suche nachdem Fehler und beginne mit der Suche dort, wo ich mir garnicht so sicher bin ob es richtig ist. Ist der nachfolger Code soweit richtig oder mache ich fehler?
1 | uint8_t pool[30]; |
2 | |
3 | int main(void) { |
4 | |
5 | init(pool); |
6 | regD(pool); |
7 | }
|
8 | |
9 | void init(uint8_t *pool) { |
10 | uint8_t i; |
11 | for(i=0; i<sizeof(pool); i++) |
12 | pool[i] = 0; |
13 | }
|
14 | |
15 | void regD(uint8_t *pool) { |
16 | uint8_t index = freeSlotIndex(pool); |
17 | if(index != 255) { |
18 | pool[index] = 10; |
19 | }
|
20 | }
|
21 | |
22 | uint8_t freeSlotIndex(uint8_t *pool) { |
23 | uint8_t i; |
24 | for(i=0; i<sizeof(pool); i++) { |
25 | if(pool[i] == 0) |
26 | return i; |
27 | }
|
28 | return 255; |
29 | }
|