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");
}
}
};
Di har inte avslutat monster.
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;
}
Men det blev tydligen fler fel i kompilatorn nu...
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.
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.
Tackar iallafall! Uppskattas :D
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.
Kolla igenom taggarna ordentligt. En klassiker att man har glömt stänga/öppna.