gpt4 book ai didi

c - 结构问题中的指针。我做对了吗?

转载 作者:行者123 更新时间:2023-12-02 07:54:26 24 4
gpt4 key购买 nike

我正在重写一些代码,将常规指针指向指针在结构中的位置。

这是有效的原始代码:

int wrote = sf_writef_double(outfile, *mono_channel, frames);

在新代码中,我将 mono_channel 指针放在我编写的结构中

int wrote = sf_writef_double(outfile, data->mono_channel, frames);

编译器没有报错,但程序崩溃了。

那么问题来了。 data->mono_channel 是否与 *mono_channel 相同?

拥抱,路易丝

编辑:更准确地说,这是我所做的:

ltfat_complex* fm;
fm = malloc(data->L * sizeof(ltfat_complex));
if (fm == NULL) { puts("fm malloc failed"); exit(1); }

/* Writes output to fm */
idgt_fac(data->coef, gdf, data->L, 1, 1, data->a, data->M, fm);

free(data->mono_channel);

data->mono_channel = (double*) fm;
free(fm);

...

int wrote = sf_writef_double(outfile_handler, data->mono_channel, frames);

问题可能是我尝试重新使用 data->mono_channel 指针吗?

编辑2:以下是完整的源代码(每行约 700 行):

旧的有效: http://www.student.dtu.dk/~s011392/gabor-io.zip

新: http://www.student.dtu.dk/~s011392/gui.zip

遗憾的是,它们需要大量库才能编译:来自 SVN 的 ltfat、fftw3、lapack、blas、sndfile。

但是他们有 =)

最佳答案

您在第一个版本中取消引用 mono_channel,但在第二个版本中没有。尝试

int wrote = sf_writef_double(outfile, *(data->mono_channel), frames);

关于c - 结构问题中的指针。我做对了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1725413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com