Fehler beim Compiler: subscripted value is neither array.

Gast #757240
Lesenswert?

Hallo,

ich habe folgenden Codeausschnitt:

unsigned long Zeitbasis;
unsigned char ID;

void Schalten (void)
{
   ...
   Zeitbasis = Basis_def(ID);
   ...
}

unsigned long Basis_def (unsigned char ID)
{
   unsigned long Basis;
   ...
   Basis = 123456;
   ...
   return Basis

}

Der Compiler bringt mir dann folgenden Fehler:
error: subscripted value is neither array nor pointer
Der Fehler bezieht sich auf die Zeile "Zeitbasis = Basis_def(ID);"
Wo ist das Problem ?

Danke

Gruß Alex
Persönliche Seite #757263
Lesenswert?

Der Code enthält mindestens zwei Probleme

Dieser Code kompiliert...
1
unsigned long Zeitbasis;
2
unsigned char ID;
3

4
unsigned long Basis_def (unsigned char ID)
5
{
6
   unsigned long Basis;
7
   // ...
8
   Basis = 123456;
9
   // ...
10
   return Basis; // <==
11
}
12

13
void Schalten (void)
14
{
15
   // ...
16
   Zeitbasis = Basis_def(ID);
17
   // ...
18
}
19

20
int main(void)
21
{
22
   Schalten();
23
   return 0;
24
}
#757267
Lesenswert?

Es ist dir gelungen, den Code extra für uns so übersichtlich zu 
gestalten, dass auch der Fehler nicht mehr enthalten ist.

Bring mal ein minimiertes Beispiel, dass man durch den Compiler jagen 
kann. Wobei ganz hilfreich wäre, zu erfahren welchen Compiler man dazu 
verwenden sollte.
Gast #757305
Lesenswert?

Also dann nochmal,

ich habe in meinen AVR Studio folgendes eingegeben:
1
unsigned long Zeitbasis;
2
unsigned char ID;
3

4

5
unsigned long Basis_def(unsigned char ID)
6
{
7
  unsigned long Basis;
8
  Basis = 23456;
9
  return Basis;  
10
}
11

12
void Port_schalten(unsigned char ID)
13
{
14
  Zeitbasis = Basis_def[ID];
15
}
16

17
int main (void)
18
{
19
  ID = 5;
20
  Port_schalten(ID);
21
  return 0;
22
}

Bei Make Vorgang mit WINAVR Version 25.5.2007 kommt folgende Meldung

Build started 20.1.2008 at 19:49:00
../2138-10.c: In function 'Port_schalten':
../2138-10.c:14: error: subscripted value is neither array nor pointer
make: *** [2138-10.o] Error 1
Build failed with 1 errors and 0 warnings...
Gast #757413
Lesenswert?

>Da habe ich jetzt wegen einen Tippfehler wieder
>eine halbe Stunde verschissen.

Hast du nicht. DIESEN Fehler machst du mit Sicherheit nie wieder - und 
dafür ist die halbe Stunde doch gut investiert, oder?

Oliver
Gast #757606
Lesenswert?

Hoffentlich macht er auch den Fehler nicht nochmal, irgendwelchen frisch 
eingetippten Pseudocode statt per Copy/Paste den echten Code zu posten.
Im Ursprungsposting war der Fehler mit den Klammern nicht enthalten.

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