ArrayPointer in C

Gast #1714924
Lesenswert?

Ich habe folgendes Problem. Ich möchte auf einem Grafikdisplay 
unterschiedliche Schriftgrössen ausgeben. Zu diesem Zweck soll in der 
Printfunktion ein Pointer auf das entsprechende Array welches den 
Zeichensatz enthält zeigen. Dies funktioniert allerdings nicht. Wenn ich 
statt dem Pointer direkt ein bestimmtes Array anspreche funktioniert es 
Problemlos. Ich hab den Code soweit reduziert, dass nur der Charoffset 
vom Pointer geholt werden soll, dies funktioniert aber auch schon nicht.

Um folgendes Zeile geht es
1
pucCommand1[2] = (ulX + *(ulFont+ucTemp)-1);

Ich will den Inhalt der von Font6[ucTemp] ansprechen und um 1 reduzieren

Hier noch der ganze Code
1
void drawString(const char *pcStr, unsigned long ulX, unsigned long ulY, unsigned long size) {
2

3
  int charPointer;
4
  unsigned char ucTemp;
5
  unsigned char pucCommand1[6];
6
  unsigned long *ulFont;
7
  pucCommand1[0] = 0x21;
8
  pucCommand1[3] = 0x22;
9
  while (*pcStr != 0) {
10

11
    ucTemp = *pcStr++ & 0x7f;
12
    charPointer = 0;
13
    if (ucTemp < ' ') {
14
      ucTemp = 0;
15
    } else {
16
      ucTemp -= ' ';
17
    }
18
    if (size == 6)
19
      ulFont = Font6;
20
    else if (size == 3)
21
      ulFont = &Font3[0];
22
    else {
23
      size = 3;
24
      ulFont = &Font3[0];
25
    }
26

27
    pucCommand1[1] = ulX;
28
    pucCommand1[2] = (ulX + *(ulFont+ucTemp)-1);
29
    pucCommand1[4] = ulY;
30
    pucCommand1[5] = ulY + 5;
31
    sendCommand(pucCommand1, sizeof(pucCommand1) / sizeof(pucCommand1[0]));
32

33
    for (int i = 0; i < ucTemp; i++) {
34
      charPointer += (Font6[i]) * size;
35
    }
36
    sendData((&Font6[charPointer+96]), (Font6[ucTemp])*size);
37
    ulX += (Font6[ucTemp])+2;
38
  }
39
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren