Форум программистов, компьютерный форум CyberForum.ru

Подскажите в чем ошибка (С++) - C++

Восстановить пароль Регистрация
 
Horrorous
0 / 0 / 0
Регистрация: 13.04.2009
Сообщений: 38
24.03.2010, 02:37     Подскажите в чем ошибка (С++) #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
typedef struct
{
    char name[10], mark[10];
    unsigned price, num;
} Comp;
 
Comp *list = NULL;
int cnt = 0;
 
int Add(Comp val)
{
    Comp *tmp = calloc(cnt+1, sizeof(Comp));
    if(!tmp) return 0;
    if(cnt) memcpy(tmp, list, cnt*sizeof(Comp));
    tmp[cnt] = val;
    cnt++;
    if(list) free(list);
    list = tmp;
    return 1;
}
Выдает ошибку на этой строке Comp *tmp = calloc(cnt+1, sizeof(Comp));
c:\users\makross\documents\visual studio 2008\projects\lab_3\lab_3\lab_3.cpp(10) : error C2440: 'initializing' : cannot convert from 'void *' to 'Comp *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast

Как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2010, 02:37     Подскажите в чем ошибка (С++)
Посмотрите здесь:

C++ Подскажите в чем ошибка
C++ Подскажите в чем ошибка
Подскажите, в чем ошибка? C++
Подскажите в чем ошибка C++
C++ Подскажите, в чем ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.03.2010, 06:31     Подскажите в чем ошибка (С++) #2
C++
1
Comp *tmp = (Comp *) calloc(cnt+1, sizeof(Comp));
компилируешь как C++, а там неявное приведение типа указателя не разрешается
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
24.03.2010, 14:17     Подскажите в чем ошибка (С++) #3
calloc Это с
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.03.2010, 05:01     Подскажите в чем ошибка (С++) #4
там у него всё C
просто он компилирует это в C++

Добавлено через 5 минут
typedef для структуры, NULL, calloc, free
Yandex
Объявления
25.03.2010, 05:01     Подскажите в чем ошибка (С++)
Ответ Создать тему
Опции темы

Текущее время: 16:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru