Fehlermeldung interpretieren

Gast #1276407
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
#1276419
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.
Gast #1276459
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.
#1276512
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 :-)
Gast #1276522
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
Gast #1276536
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?
Gast #1277155
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
Gast #1277161
>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
#1277172
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.
Gast #1277193
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.
#1277215
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.
Gast #1277234
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.
#1277249
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.
Gast #1277256
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 :-(

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.