Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Ondra 22. 05. 2010, 14:04:50
-
Mám pole ukazatelů ( zaznamy[...])na promenou typu struktura (pokuta) a potřeuju do něj zapsat ukazatel na nově vytvořený záznam. Problém je že v gcc to jde zkompilovat ale ve MS Visual studio hlásí errory. Nevíte v čem je problém ?
zaznamy[pocet]=(pokuta *) malloc(sizeof(pokuta));
Error 1 error C2059: syntax error : ')' c:\users\a\documents\visual studio 2008\projects\p1\p1\lib.cpp 35 p1
-
Nepouziva sa pripona cpp pri C++ zdrojakoch?
-
Nepouziva sa pripona cpp pri C++ zdrojakoch?
Nevím ale mám tam ve vlastnostech nastaveno kompilovat jako C a ne C++.
-
Nemělo by tam bejt místo
pokuta *
*pokuta
?
-
Nemělo by tam bejt místo
pokuta *
*pokuta
?
pokud jsem to pochopil z toho mála, tak je to správně - jde o přetypování z ukazatele typu void na ukazatel typu pokuta. Kdyby tam bylo *pokuta, pak by to přímo ukazatel. jenže bez typu a hodnoty. navíc by ten kód asi neměl ani potom smysl.
Zkusil bych udělat mezery mezi operátorem '=' a zbytkem textu. jestli to Vis. C++ bere jako kód v C++, můžou občas podobné věci dělat trochu problémy. Jinak by bylo lepší kdyby jsi
sem vložil toho kódu víc, protože syntaktické chyby se mohou při překladu objevit jinde, než kde k ní ve skutečnosti došlo.
-
Předpokládám, že vyžužlal studio se po nastavení "aby překládalo jako c" skutečně chová tak, že dodržuje normu pro c.
Dále předpokládám, že tu strukturu pokuta máš deklarovanou nějak takto:
struct pokuta {
...
};
Pak bys asi měl asi tu funkci malloc volat nějak takto:
zaznamy[pocet] = (struct pokuta*) malloc(sizeof(struct pokuta));
ps: a doporučoval bych pro soubory s kódem v c používat příponu .c a pro kód s c++ příponu .cpp ...
-
typedef struct
{
char name[21];
char city[21];
char state[3];
} Rec;
typedef Rec *RecPointer;
RecPointer r;
r = (RecPointer)malloc(sizeof(Rec));