FreeBasic
Главная
Вход
Регистрация
Вторник, 15.10.2024, 16:31Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Несоответствие типов при использовании new
electrikДата: Четверг, 09.06.2022, 20:10 | Сообщение # 1
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
Привет. есть код, который в приплюснутых нормально компилируется, но при использовании в тех же условиях в FB нет. Ругается на несоответствие типов.

Код
type WorldParameters
    as double frame_period
    as long fs

    as double ptr f0
    as double ptr time_axis
    as long f0_length

    as double ptr ptr spectrogram
    as double ptr ptr aperiodicity
    as long fft_size
end type

sub SpectralEnvelopeEstimation(byval x as double ptr, byval x_length as integer, _
                    byval world_parameters as WorldParameters ptr)

    world_parameters->spectrogram = new double ptr[world_parameters->f0_length]
    for i as integer = 0 to world_parameters->f0_length-1
        world_parameters->spectrogram [i]= new double[world_parameters->fft_size / 2 + 1] ' ругается на эту строку
    next
end sub

Я конечно могу перевести всё на Allocate, в программе такой код C++ в стиле C, нет объектов, конструкторов и деструкторов, но память выделяется через new.
Можно привести к типу, но всё же интересно понять.
кусок оригинального кода:

        world_parameters->spectrogram = new double *[world_parameters->f0_length];
        for (int i = 0; i < world_parameters->f0_length; ++i) {
            world_parameters->spectrogram =
                new double[world_parameters->fft_size / 2 + 1];
        }
[/i]


Сообщение отредактировал electrik - Четверг, 09.06.2022, 20:18
 
haavДата: Четверг, 09.06.2022, 21:01 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Замени оператор деления:

Код

...
world_parameters->spectrogram[i] = new double[world_parameters->fft_size \ 2 + 1]
...


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Вторник, 14.06.2022, 01:38 | Сообщение # 3
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
Мда, опять это целочисленное деление. Вроде уже стараюсь внимательней быть.
 
  • Страница 1 из 1
  • 1
Поиск: