8 svar
349 visningar
Alan123 278 – Fd. Medlem
Postad: 28 jul 2017 20:38

Fel i koden

STÅR ATT DET ÄR FEL VID HALPARANTESEN VID MAIN. NÅGON SOM VET? EXPECTED ';' BEFORE  TOKEN {. MEN NÄR JAG LÄGGER;  INNAN SÅ BLIR DE FEL.
#include <stdio.h>
#include "string.h"
struct monster {
int health;
char name [];

int main()
{
int update_monster_name(monster *m, int health, char name) {
if (m==NULL){
return -1;
}
m->health = health;
m->name = name;
return 0;
}
int initial_monster(monster *m){
return update_monster_name(m,1946,"Monster");
}

}
};

Bubo 7347
Postad: 28 jul 2017 20:51

Di har inte avslutat monster.

Stokastisk 3597 – Fd. Medlem
Postad: 28 jul 2017 20:53 Redigerad: 28 jul 2017 20:54

Du har ganska många fel i den där koden. Detta kommer inte fungera helt och hållet, men det hjälper dig åtminstone en bit på vägen, så uppstädat så blir koden så här

#include <stdio.h>
#include <string.h>

struct monster {
int health;
char name[];
};

int update_monster_name(struct monster *m, int health, char name) {
if (m==NULL){
return -1;
}
m->health = health;
m->name = name;
return 0;
}


int initial_monster(struct monster *m){
return update_monster_name(m,1946,"Monster");
}

int main()
{
return 0;
}

Alan123 278 – Fd. Medlem
Postad: 28 jul 2017 22:06

Men det blev tydligen fler fel i kompilatorn nu...

Bubo 7347
Postad: 28 jul 2017 22:11
Alan123 skrev :

Men det blev tydligen fler fel i kompilatorn nu...

För det första var det där ett mycket konstigt sätt att tacka för hjälpen.

För det andra går det inte att hjälpa till ALLS med ledning av det inlägget.

För det tredje avbryter kompilatorer oftast felutskrifterna när det inte är meningsfullt att fortsätta, t.ex. när inledande fel gör det omöjligt att kompilera resten av programmet.

Stokastisk 3597 – Fd. Medlem
Postad: 29 jul 2017 10:27
Alan123 skrev :

Men det blev tydligen fler fel i kompilatorn nu...

Jag skrev ju till och med att koden inte fungerar, du måste anstränga dig betydligt mer än såhär, för jag antar att din tanke inte var att vi skulle skriva hela ditt program? Du måste också lära dig läsa felmeddelandena från kompilatorn, tro det eller ej, dom berättar faktiskt vad som är fel.

Några fel som jag ser omedelbart är att du har "char name[]" i monster, du måste ange en storlek på arrayen som skapas, du kan inte lämna den ospecificerad.

Du har även i update_monster_name så har du deklarerat att name ska vara en char, detta stämmer nog inte riktigt med hur du tänkt dig, du bör deklarerar det som en char* eller nått. Sedan måste du ändra m->name = name så att du kopierar över strängen till arrayen.

Alan123 278 – Fd. Medlem
Postad: 29 jul 2017 22:02

Tackar iallafall! Uppskattas :D

PeterÅ 842
Postad: 30 jul 2017 16:59 Redigerad: 30 jul 2017 17:04

1>e:\c\plugg1\plugg1.cpp(5): warning C4200: nonstandard extension used: zero-sized array in struct/union

1>e:\c\plugg1\plugg1.cpp(5): note: This member will be ignored by a defaulted constructor or copy/move assignment operator

1>e:\c\plugg1\plugg1.cpp(9): error C2601: 'update_monster_name': local function definitions are illegal

1>e:\c\plugg1\plugg1.cpp(17): error C2601: 'initial_monster': local function definitions are illegal

1>e:\c\plugg1\plugg1.cpp(14): error C3863: array type 'char []' is not assignable

1>e:\c\plugg1\plugg1.cpp(18): error C3861: 'update_monster_name': identifier not found

Tror du behöver se om din kodning. Många fel, du behöver koncentrera dig mer innan du slänger ut hafsig kod som du hoppas någon annan ska lösa åt dig.
Däremot kan du få bra hjälp här om du visar att du anstränger dig och verkligen försöker.

rickmax 5 – Fd. Medlem
Postad: 24 feb 2018 15:19

Kolla igenom taggarna ordentligt. En klassiker att man har glömt stänga/öppna. 

Svara
Close