gpt4 book ai didi

来自java程序员的C编程问题

转载 作者:太空狗 更新时间:2023-10-29 15:11:35 25 4
gpt4 key购买 nike

所以我需要将 C 库转换为纯 Java,到目前为止它看起来不错,但我被困在这里。

有人可以向我解释以下指针的用途吗?

double *DTimeSigBuf[MAX_TIME_CHANNELS];

好的,我知道它是一个名为 DTimeSigBuf 的 double 类型指针,但是括号中的是什么? MAX_TIME_CHANNELS 在 h 文件中定义为:

 #define MAX_TIME_CHANNELS 2

然后在代码中这个常量值发生变化,就像它指向其他地方一样,但我不知道到底是什么意思。是否等同于说:

double *DTimeSigBuf = MAX_TIME_CHANNELS;

如果我记得在汇编器中有类似的东西,比如:mov [BX], CL called Indirect addressing mode register,这和这个有什么关系吗?我知道我可能完全迷路了!因为正如标题所说,我是一名 Java 程序员。

还有一个问题,这样做的效果是什么:

DTimeSigBuf[chanNum]            = (double*)malloc(block_size_samples*sizeof(double));

其中 block_size_samples 是 int 而 chanNum 是 for 迭代器变量?

求助!我发誓我一直在谷歌搜索。

谢谢大家:)

最佳答案

它是指向 double 的指针数组。 MAX_TIME_CHANNELS 是数组的大小。

带有 malloc 的语句的效果是为 block_size_samples double 值分配足够大的内存块;然后将内存块的地址分配给 DTimeSigBuf 数组的 chanNum 元素。

关于来自java程序员的C编程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794002/

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