hi ich muss ein array feld[i] an einen char typen übergeben so in etwa test = feld[i]; beides ist in char deklariert aber es geht nicht
"es geht nicht". Wirklich erstaunlich, wieviele Leute es immer wieder versuchen, mit so extrem präzisen Fehlerbeschreibungen Hilfe zu bekommen. Also: - Gibt der Compiler eine Fehlermeldung aus? (wenn ja: Welche?) - Was genau passiert? - Quelltext?
for(b = 0; b < 8; b++) { ersatz = feld[i]; if(ersatz & 0x01) P3_2 = 0; else P3_2 = 1; ersatz = ersatz >> 1; } so siehts aus ein feld wird an einem port übergeben geht aber nur wenn das feld zb feld[0] heisst verwende ich feld[i] und deklariere i mit 0 vor geht es net leider kann mann ein feld[i] auch net shiften bei feld[0] gehts aber komischerweise wieder verwendeter comp keil
Wieder so eine tolle Fehlerbeschreibung. "geht es net" und "es gibt keine fehlermeldung". Was passiert denn stattdessen? Zeig mal, wie ersatz und feld definiert sind. Einfach alles, was von deinem Code für den Fehler relevant sein könnte, und nicht nur Fragmente. Wenn du Hilfe erwartest, solltest du mit dem potenziellen Helfer keine Ratespielchen veranstalten.
Und vor allen Dingen: Was bedeutet: 'es geht net'? Steigen Rauchwölkchen auf? schaltet sich das Licht ein? Stürzt der Rechner ab?
noch eine kleine Anmerkung - in C ist es nicht moeglich ein array zu uebergeben, es kann lediglich ein zeiger (adresse) auf das erste arrayelement uebergeben werden, oder aber ein feldelement Bsp: int feld[5]; // definiert ein feld, eintraege zufaellig int *p; // definiert einen (int) zeiger int wert; // definiert eine int variable p = feld; // p wird mit der adresse des ersten feld elementes // geladen (adressuebergabe, keine felduebergabe) // identisch ist folgende anweisung p = &feld[0]; wert = feld[2] // ein eintrag des feldes (3. Element) -> wert
noch eine kleine Anmerkung: Wenn man unbedint ein Feld übergeben möchte, dann packt man dieses in einen struct ein. structs werden 'per value' übergeben. eine 2.-te Anmerkung: > es kann lediglich ein zeiger (adresse) auf das erste arrayelement > uebergeben werden Genau das ist die größte Konfusion bei Neulingen. In so einem Fall degeneriert ein Array automatisch zu einem Pointer auf das erste Array-Element. Man kann auch sagen: Der Name des Arrays, also ohne irgendeinen Index, steht für einen Pointer auf das erste Array Element. Das bedeutet aber nicht, dass der Array-Name alleine ein Pointer ist! Ein Pointer ist ein Pointer und ein Array ist ein Array. Nur in ganz bestimmten Fällen wird diese Typ-Umwandlung vom Compiler gemacht!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.