hi, hat von euch jemand schonmal folgende Fehlermeldung erhalten? Oder was könnte die fehlermeldung bedeuten? bin neu hier und weiß damit nichts anzufangen. request for member 'ptrRdProt' in something not a structure or union gruß
Generell löst man solche Probleme, in dem man google nach der Fehlermeldung ohne den Variablennamen suchen lässt. So viele Feherlmeldungen gibt es gar nicht, das andere das nicht auch schon mal hatten. In deinem Fall dürfte ein ->ptrRdProt an Stelle des .ptrRdProt das Problem lösen. Oliver
Doch den Punkt hab ich schon überal stehen. Wüsste sonst auch nicht woran es liegen könnte.bin eben en Anfänger
Ralf schrieb: > Doch den Punkt hab ich schon überal stehen.^ Und genau das wird dann wohl das Problem sein. > Wüsste sonst auch nicht > woran es liegen könnte.bin eben en Anfänger Tja, wir wissen es auch nicht. Wir könnten dir wahrscheinlich weiterhelfen, wenn du uns den Source Code zeigen würdest. Aber so, leider, leider, wir sind halt alle keine Hellseher.
auch immer ein heißer Tip: irgendwo vorher }, ), ; oder so vergessen. Der Parser kann dann einiges an Fehlinterpretation liefern und erkennt eine structure nicht mehr unbedingt als solche. Aber zuerst probier mal -> statt . aus.
also das -> anstatt dem . bewirkt Wunder. Also die Fehler sind jetzt weg Vielen dank
Wieso meinst abwarten? Könnte es sein das es garnicht an dem gelegen hat?
Ralf schrieb: > Wieso meinst abwarten? > Könnte es sein das es garnicht an dem gelegen hat? Doch, wenn der Compiler zufreiden ist, dann wirds das schon gewesen sein. Aber die Art wie du frägst und wie du so gar nichts mit der Fehlermeldung anfangen konntest, lässt schliessen das du soeben dabei bist die ganze Fehlerklasse der 'Pointer zeigt ins Nirwana' Fehler zu entdecken. Daher abwarten. Fehler, die dir der Compiler findet sind einfach. Jetzt gehts erst richtig los mit dubiosen Laufzeitfehlern :-)
Ja das glaub ich auch.Bin eben noch ganz am Anfang meiner Programmierlaufbahn. Würd mich freuen wenn du mir bei einem weiteren fehler,der bestimmt auftaucht, wieder weiterhelfen könntest
hab mal ein paar Zeilen kopiert die ich verwende(bitte lachen verkneifen) //Protikol.c GetSpiBlock(&Prot); AddProt(&Prot); //Test.c PROTOKOL spidata; Fasse hier meine Daten in der Struktur zusammen. GetSpiBlock(PROTOKOL* spiData); //Protokol.c void AddProt(PROTOKOL* test) { Prot.battery_mode = test->battery_mode;(1) Prot.temperature = test->temperature; (1) . . . } Das was ich hier mach ist nicht richtig und wenn dann sehr sinnlos,oder? Kannst du es bisschen nachvollziehen was ich vorhab? Also in den zeilen kam vorhin die Fehlermeldung(1). Die Parameter,die ich übergebe, macht man das so oder was schlägst du vor?
Guten Morgen, Bei mir tauchen aber auch viele Fehlermeldungen auf. Wie könnte man denn folgende interpretieren? incompatible type for argument 1 of 'AddProt' //deklaration PROTOKOL spiData; Der Fehler wird genau hier angezeigt AddProt(spiData); spidata wird hierher übergeben void AddProt(PROTOKOL* Prot) { . . } spidata ist eine Struktur und geb davor paar Werte rein. Kann mir da jemand weiterhelfen? danke schonmal
>spidata wird hierher übergeben >void AddProt(PROTOKOL* Prot) Erwartet wird ein pointer auf spiData, du rufst aber mit spiData direkt auf, und deshalb meckert der Compiler. Oliver
Der richtige Zeitpunkt um sich ein C-Buch zu kaufen und die Trial&Error-Methode aufzugeben.
Wollte gestern noch ein paar Zeilen dazu schreiben, habs aber dann verschwitzt :-) Ralf schrieb: > Das was ich hier mach ist nicht richtig und wenn dann sehr sinnlos,oder? Ob das sinnlos ist oder nicht, kann man anhand des kurzen Ausschnitts nicht sagen. Dazu kann ich zuwenig nachvollziehen was die Absicht dahinter ist, wie die Datentypen sind, etc. > Kannst du es bisschen nachvollziehen was ich vorhab? Nicht wirklich. > Die Parameter,die ich übergebe, macht man das so oder was schlägst du > vor? Das ist schon so in Ordnung. Aber: man kann in C Strukturen auch in einem Rutsch zuweisen. Die Aufdröselung in die einzelnen Strukturmember ist daher nicht unbedingt notwendig. Komplette Strukturzuweisung geht nicht (bzw. liefert falsche Ergebnisse), sobald in der Struktur ein dynamisch allokierter Member enthalten ist und natürlich klarerweise auch dann nicht, wenn gar nicht die komplette Struktur zugewiesen werden soll.
1 | void AddProt(PROTOKOL* test) |
2 | {
|
3 | Prot = *test; |
4 | }
|
Sind beide Einschränkungen nicht gegeben, dann ist diese Version vorzuziehen, da man so nicht vergessen kann einen Member umzukopieren, was besonders bei Änderungen in der Struktur (hinzufügen von Member) ein nicht zu unterschätzender Stolperstein ist.
Viel dank das du mir schon wieder so sehr geholfen hast. Jetzt sieht das ganze schon viel besser aus. Jeder fängt halt mal klein an, so ging/geht es glaub mehreren. Manche nehmen halt auf diese Rücksicht, die anderen weniger.
Ralf schrieb: > Viel dank das du mir schon wieder so sehr geholfen hast. > Jetzt sieht das ganze schon viel besser aus. > Jeder fängt halt mal klein an, so ging/geht es glaub mehreren. > Manche nehmen halt auf diese Rücksicht, die anderen weniger. Das soll aber nicht heißen, dass ich nicht die Position von Peter stütze. Er hat nämlich recht! Du brauchst ein C-Buch! In C, oder einer Programmiersprache allgemein, gibt es noch genügend Stolersteine und Fallen und wissenswerte Dinge, ohne deren Kentniss eine sinnvolle Programmierung nicht möglich ist. Online Tutorials sind da oft keine Alternative. Bücher haben nicht umsonst einen Umfang von ein paar hundert Seiten, ich kenne aber kein Tutorial, welches ähnlich umfangreich wäre. Viele Online Tutorials sind oft auch einfach nur die Lernunterlagen einer Schule oder Uni. Die sind also gedacht um einen Kurs zu begleiten, in dem ein Lehrer vorn an der Tafel steht und die Dinge erklärt und sich die Schüler in den ausgedruckten Texten Notizen machen. Wenn man erst mal eine Programmiersprache beherrscht und die Prinzipien der Programmierung intus hat, sieht die Sache anders aus. Dann kann man aus den kurzen Tutorials die benötigten Informationen entnehmen um die Unterschiede zu Bekanntem zu entnehmen. Aber auch dann bevorzuge ich immer noch ein Buch. Es ist in einigen Bereichen einem Online Tutorial überlegen und der einzige Nachteil besteht darin, dass es Geld kostet. Geld das allerdings gut angelegt ist.
Ja da geb ich dir auch recht. Bei mir ist das nur so das ich das nicht beruflich mach, sondern ein Teil einer Abschlussarbeit ist. Im späteren Leben werd ich meine Finger davon lassen*g*.Ist glaub auch besser so. Für das c Programmieren muss man geboren sein und nicht alles in sich hinein zwingen. Trotz allem muss ich das Projekt irgendwie hinbekommen.
Irgendwie versteh ich das nicht. In letzter Zeit haben wir hier im Forum eine Menge 'Abschlussarbeiten', mit denen der Abschliessende deutlich überfordert ist. Ich dachte immer eine Abschlussarbeit sei etwas, bei dem man seine Schokoladenseite zeigt. Da wählt man sich doch nicht ein Thema, von dem man von vorne herein schon sagen kann "das ist nichts für mich" bzw. "ich hab noch nicht mal den blassesten Schimmer wie ich das anfangen soll" (das trifft jetzt nicht auf dich zu, kommt aber hier im Forum auch vor). Oft hat man hier den Eindruck, dass eine Abschlussarbeit nach der Methode gewählt wird "Möglichst viel Show. Dass ich das nicht hinkriegen werde spielt keine Rolle, darüber kann ich mir 24 Stunden vor Ende der Abgabefrist immer noch Gedanken machen. Aber falls ja doch (die Chancen sind unter 10%), dann ist das der Knaller. Hilfe!!!!!" Oder kriegt ihr die Dinger zugelost? Wenn allerdings zugelost, dann muss ich mich schon fragen: Was habt ihr die vorhergehende Zeit gemacht? Zugeloste Projekte fallen im Schwierigkeitsgrad ja nicht vom Himmel sondern sind oft nur Variationen oder Kombinationen von irgendwelchen vorhergehenden Laborübungen. Nichts wirklich Neues.
Ralf schrieb: > Jeder fängt halt mal klein an, so ging/geht es glaub mehreren. Stimmt, und ich habe das Buch, das ich mir gekauft habe um C zu lernen, heute noch. > Manche nehmen halt auf diese Rücksicht, die anderen weniger. Manche Anfaenger nehmen einen Rat an, auch wenn er ihnen nicht schmeckt. Andere noergeln lieber und wollen bedient werden... > Bei mir ist das nur so das ich das nicht beruflich mach, sondern ein Teil > einer Abschlussarbeit ist. Im späteren Leben werd ich meine Finger davon > lassen*g*. Kurz: Schon wieder einer von denen, die nur herkommen um sich die Hausaufgaben machen zu lassen :-(
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.