Forum: PC-Programmierung Initialization makes integer from pointer without a cast


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Felix (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Hallo,
ich habe ein problem mit einer Warnung, die ich gerne weg hätte, aber 
nicht weg bekomme.

file.h
typedef enum
{
  red,
  blue,
  green
}colors_te

typedef struct
{
  const colors_te color;
  uint8 numbers;
}inputInfo_ts;

file.c
static infputInfo_ts inputInfo_as[] = 
{
  {red, 0},
  {blue, 0},
  {green, 0}
}

Die Warnung ist:
initialisation makes integer from pointer without a cast
Dieser bezieht sich auf red, blue und green im struct.

Aber warum castet der überhaupt? Typ soll doch colors_te sein.

von g457 (Gast)


Bewertung
1 lesenswert
nicht lesenswert
> ich habe ein problem [..]

Das Problem ist, dass Du uns nicht den richtigen Code zeigst sondern 
irgendwasfastsoähnliches.

Beitrag #6470477 wurde von einem Moderator gelöscht.
von Programmierer (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Also ich kriege völlig andere Fehlermeldungen:
test.c:6:11: error: expected ‘;’ before ‘typedef’
    6 | }colors_te
      |           ^
      |           ;
    7 | 
    8 | typedef struct
      | ~~~~~~~    
test.c:10:9: error: unknown type name ‘colors_te’
   10 |   const colors_te color;
      |         ^~~~~~~~~
test.c:11:3: error: unknown type name ‘uint8’
   11 |   uint8 numbers;
      |   ^~~~~
test.c:14:8: error: unknown type name ‘infputInfo_ts’
   14 | static infputInfo_ts inputInfo_as[] =
      |        ^~~~~~~~~~~~~
test.c:16:3: warning: braces around scalar initializer
   16 |   {red, 0}, ...

Du zeigst also nicht den tatsächlichen Code, sondern irgendwas anderes.

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
Dazu kommt, dass in dem Code keinerlei Zeiger vorkommen. Die 
Fehlermeldung passt also nicht dazu.
Du solltest ein minimales, aber vollständiges Programm posten, das du 
genau so durch den Compiler hast laufen lassen und das den Fehler 
produziert.

von PittyJ (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ich sehe da auch erst einmal ein paar fehlende Semokolons.

von Mark B. (markbrandis)


Bewertung
0 lesenswert
nicht lesenswert
Felix schrieb:
> Aber warum castet der überhaupt? Typ soll doch colors_te sein.

Niemand castet hier. Der Code den du zeigst verursacht keine solche 
Fehlermeldung. Poste mal den tatsächlichen Code.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.