Помогите, компилятор ругается.
От: Oxy  
Дата: 22.04.03 15:40
Оценка:
Я не очень искушен в С. Компилю один исходник, но Borland C++ Builder Comiller 5.5 ругается
Помогите разрешить проблему
Такой код
13: struct rand_struct {
14:   unsigned long seed1,seed2,max_value;
15:  double max_value_dbl;
16:};
.....................................................
86: char *to;
87: to=malloc(1024);
......................................................

95: void randominit(struct rand_struct *rand_st,ulong seed1, ulong seed2)
96: {
...........................
xx: }


Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
script.cpp:
Error E2034 script.cpp 87: Cannot convert 'void *' to 'char *' in function main(int,char * *)
Error E2303 script.cpp 95: Type name expected
*** 2 errors in Compile ***
Re: Помогите, компилятор ругается.
От: LaptevVV Россия  
Дата: 22.04.03 15:53
Оценка:
Здравствуйте, Oxy, Вы писали:

Oxy>Я не очень искушен в С. Компилю один исходник, но Borland C++ Builder Comiller 5.5 ругается

Oxy>.....................................................
Oxy>86: char *to;
Oxy>87: to=malloc(1024);
Oxy>......................................................
Надо так

char *to;
to=(char *)malloc(1024);

явное преобразованиетипа указателя требуется
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Помогите, компилятор ругается.
От: Oxy  
Дата: 22.04.03 16:01
Оценка:
LVV>Надо так
LVV>char *to;
LVV>to=(char *)malloc(1024);
LVV>явное преобразованиетипа указателя требуется

Ок, это пошло. А как со второй ошибкой?
Re[2]: Помогите, компилятор ругается.
От: Аноним  
Дата: 22.04.03 16:14
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>char *to;
LVV>to=(char *)malloc(1024);


А лучше (если пишешь на Си++) так:

char *to = new char[1024];
Re: Помогите, компилятор ругается.
От: Аноним  
Дата: 22.04.03 16:15
Оценка:
Здравствуйте, Oxy, Вы писали:

Oxy>
Oxy>95: void randominit(struct rand_struct *rand_st,ulong seed1, ulong seed2)
Oxy>


Oxy>Error E2303 script.cpp 95: Type name expected


Вероятно, тип ulong не объявлен.
Re: Помогите, компилятор ругается.
От: Кодт Россия  
Дата: 22.04.03 16:18
Оценка:
Здравствуйте, Oxy, Вы писали:

Oxy>
Oxy>95: void randominit(struct rand_struct *rand_st,ulong seed1, ulong seed2)
Oxy>96: {
Oxy>...........................
Oxy>xx: }
Oxy>


Oxy>Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland

Oxy>script.cpp:
Oxy>Error E2303 script.cpp 95: Type name expected

У тебя тип (или typedef) ulong определен?
... << RSDN@Home 1.0 beta 6a >>
Перекуём баги на фичи!
Re: Помогите, компилятор ругается.
От: ilnar Россия  
Дата: 22.04.03 16:20
Оценка:
Здравствуйте, Oxy, Вы писали:

86: char *to;
87: to=(char *)malloc(1024);
Re[3]: Помогите, компилятор ругается.
От: Oxy  
Дата: 22.04.03 16:38
Оценка:
А>А лучше (если пишешь на Си++) так:
А>char *to = new char[1024];

Ок, с эти понятно. Спасибо! Со вторым вопросом я тоже разобрался.
Но есть новый вопрос
Код
140: static inline uint char_val(char X)
141: {
142:   return (uint) (X >= '0' && X <= '9' ? X-'0' : X >= 'A' && X <= 'Z' ? X-'A'+10 : X-'a'+10);
144: }


Error E2092 script.cpp 140: Storage class 'inline' is not allowed here
Error E2141 script.cpp 140: Declaration syntax error
*** 2 errors in Compile ***
Re[4]: Помогите, компилятор ругается.
От: Аноним  
Дата: 22.04.03 16:40
Оценка:
Здравствуйте, Oxy, Вы писали:

Oxy>Ок, с эти понятно. Спасибо! Со вторым вопросом я тоже разобрался.

Oxy>Но есть новый вопрос
Oxy>Код
Oxy>
Oxy>140: static inline uint char_val(char X)
Oxy>141: {
Oxy>142:   return (uint) (X >= '0' && X <= '9' ? X-'0' : X >= 'A' && X <= 'Z' ? X-'A'+10 : X-'a'+10);
Oxy>144: }
Oxy>


Oxy>Error E2092 script.cpp 140: Storage class 'inline' is not allowed here

Oxy>Error E2141 script.cpp 140: Declaration syntax error
Oxy>*** 2 errors in Compile ***

Вероятно, не объявлен тип uint. Компилятор, встретив незнакомое имя uint, пытыется истолковать всю конструкцию как объявление переменной и запутывается.
Re[4]: Помогите, компилятор ругается.
От: Кодт Россия  
Дата: 22.04.03 16:43
Оценка:
Здравствуйте, Oxy, Вы писали:

Oxy>Ок, с эти понятно. Спасибо! Со вторым вопросом я тоже разобрался.

Oxy>Но есть новый вопрос
Oxy>Код
Oxy>
Oxy>140: static inline uint char_val(char X)
Oxy>141: {
Oxy>142:   return (uint) (X >= '0' && X <= '9' ? X-'0' : X >= 'A' && X <= 'Z' ? X-'A'+10 : X-'a'+10);
Oxy>144: }
Oxy>

Та же самая история. У тебя определен тип uint?
Потому что иначе компилятор воспринимает это так:
static
  inline
    int // по умолчанию переменным выдается тип int
      uint // имя переменной
        char_val(..... // далее какая-то белиберда
... << RSDN@Home 1.0 beta 6a >>
Перекуём баги на фичи!
Re[5]: Помогите, компилятор ругается.
От: Oxy  
Дата: 22.04.03 16:56
Оценка:
К>Та же самая история. У тебя определен тип uint?

Да, спасибо, проблема была именно в неопределенных типах ulong и uint.
Уже все скомпилилось. Спасибо всем за помощь!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.