Привет. есть код, который в приплюснутых нормально компилируется, но при использовании в тех же условиях в 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]