Fehlermeldung bei Pointerverwendung

Hallo
Ich erhalte bei folgendem Code die Warnung „assignment makes integer from pointer without a cast“

#include 
…
typedef struct ddb\_baselist{
 char name[64];
 char type;
 struct ddb\_baselist \* next;
 struct ddb\_baselist \* before;
 struct ddb\_object \* first\_object;
 struct ddb\_complex \* first\_complex;
}ddb\_Baselist;
…
ddb\_Baselist \* ddb\_First\_List;
…
void ddb\_Start(char \* name\_of\_first\_list[]){
 ddb\_First\_List=malloc(sizeof(ddb\_Baselist));
 int charPosition;
 while((charPositionname[charPosition]=name\_of\_first\_list[charPosition];//zu dieser Zeile kommt die Meldung
 charPosition++;
 }
}

Kann mir bitte jemand sagen, was das bedeutet?
MfG, Stefan

Hallo,

die Fehlermeldung heistt übersetzt etwa

zuweisung macht aus einem Pointer ein Integer ohne (expliziten) cast, also dass ein Pointer zu einer Zahl werden muss.

ddb_First_List->name[charPosition]=name_of_first_list[charPosition];//zu

ddb_First_List->name ist ein Array von char, also 8 bit integern.

ddb_First_List->name[charPosition] ist ein einzelner 8 bit wert

name_of_first_list ist ein array aus pointer to char
name_of_first_list[charPosition]; ist ein bestimmter pointer to char

ddb_First_List->name[charPosition]=name_of_first_list[charPosition]

weisst einen Pointer to char einem char-feld zu. Warnung ist m.E. plausiebel. Vermutlich wolltest Du

void ddb_Start(char * name_of_first_list){

statt

void ddb_Start(char * name_of_first_list[]){

falls dieser Funktion nur der Name des ersten Eintrags übergeben werden sollte. Deinen Code kannst Du übrigens durch strncpy ersetzen, hätte in diesem Pointer-Fehlerfall aber zu noch mehr problemen geführt.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Stefan

Ich erhalte bei folgendem Code die Warnung „assignment makes
integer from pointer without a cast“

Kann mir bitte jemand sagen, was das bedeutet?

Wie Achim schon sagte, Du
weist ein Element eines
„Zeigers auf Char-Zeiger“
zu auf einen skalaren Wert
(char oder int).

Ein normaler ‚String‘ ist

char dertext[]

und nicht

char \* dertext[]

Dein Quelltext muesste ungefähr so aussehen:

 #include 

 struct ddb\_object { int a; };
 struct ddb\_complex { int a,b; };

 struct ddb\_baselist {
 char name[64];
 char type;
 struct ddb\_baselist \* next;
 struct ddb\_baselist \* before;
 struct ddb\_object \* first\_object;
 struct ddb\_complex \* first\_complex;
 };

 typedef struct ddb\_baselist ddb\_Baselist;

 ddb\_Baselist\* ddb\_First\_List;

 void ddb\_Start(char name\_of\_first\_list[])
 {
 int charPosition = 0;
 ddb\_First\_List = malloc( sizeof(ddb\_Baselist) );
 
 while(charPosition name[charPosition] = name\_of\_first\_list[charPosition]; 
 charPosition++;
 }
 }

Grüße

CMБ