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

malloc - cannot convert from 'void *' to 'double *' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
StrDmVal
 Аватар для StrDmVal
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 9
15.03.2010, 11:24     malloc - cannot convert from 'void *' to 'double *' #1
Здравствуйте. У меня тут текст программы для дискретного преобразования Фурье. Проблему составляют строчки, где есть комменты . Я смотрел в описании функции, вроде всё правильно.Но MS Visual St 2008 c++ упрямо выдает ошибку:cannot convert from 'void *' to 'double *'
В чём может быть причина?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int DFT(int dir,int m,double *x1,double *y1)
{
   long i,k;
   double arg;
   double cosarg,sinarg;
 
   double *x2=NULL,*y2=NULL;
 
 
   x2 = malloc(m * sizeof(double));///Вот в этих двух строчках выдаёт ошибку
   y2 = malloc(m * sizeof(double));/// 
 
 
   if (x2 == NULL || y2 == NULL)
      return(0);
 
   for (i=0;i<m;i++) {
      x2[i] = 0;
      y2[i] = 0;
      arg = - dir * 2.0 * 3.141592654 * (double)i / (double)m;
      for (k=0;k<m;k++) {
         cosarg = cos(k * arg);
         sinarg = sin(k * arg);
         x2[i] += (x1[k] * cosarg - y1[k] * sinarg);
         y2[i] += (x1[k] * sinarg + y1[k] * cosarg);
      }
   }
 
   /* Copy the data back */
   if (dir == 1) {
      for (i=0;i<m;i++) {
         x1[i] = x2[i] / (double)m;
         y1[i] = y2[i] / (double)m;
      }
   } else {
      for (i=0;i<m;i++) {
         x1[i] = x2[i];
         y1[i] = y2[i];
      }
   }
 
   free(x2);
   free(y2);
   return(1);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2010, 11:24     malloc - cannot convert from 'void *' to 'double *'
Посмотрите здесь:

cannot convert from 'int *' to 'double *' C++
Какая-нибудь реализация функции void Fun (double in, double *out) C++
Passing 'double' for converting 1 of 'void' C++
C++ error C2440: 'delete' : cannot convert from 'Song' to 'void *'
C++ Malloc. Конвертировать void в int.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
15.03.2010, 11:32     malloc - cannot convert from 'void *' to 'double *' #2
Код
x2 = (void*)malloc(m * sizeof(double));
y2 = (void*)malloc(m * sizeof(double));
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8501 / 2168 / 61
Регистрация: 07.03.2007
Сообщений: 10,836
Завершенные тесты: 1
15.03.2010, 11:36     malloc - cannot convert from 'void *' to 'double *' #3
C++
1
2
x2 = (double*)malloc(m * sizeof(double));
y2 = (double*)malloc(m * sizeof(double));
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
15.03.2010, 11:40     malloc - cannot convert from 'void *' to 'double *' #4
упс... ошибся, прошу удалить
StrDmVal
 Аватар для StrDmVal
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 9
15.03.2010, 11:42  [ТС]     malloc - cannot convert from 'void *' to 'double *' #5
Ура! Спасибо!
Yandex
Объявления
15.03.2010, 11:42     malloc - cannot convert from 'void *' to 'double *'
Ответ Создать тему
Опции темы

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