如何在c中将2个浮点数组合并为1个结构数组
我想知道是否有可能将2个浮点数组合并成1个结构数组 下面是我的示例代码如何在c中将2个浮点数组合并为1个结构数组,c,arrays,pointers,struct,C,Arrays,Pointers,Struct,我想知道是否有可能将2个浮点数组合并成1个结构数组 下面是我的示例代码 typedef struct { float left; float right; } t_stereo; int main(int argc, const char * argv[]) { float *leftBuf = (float[4]){1,2,3,4}; float *rightBuf = (float[4]){5,6,7,8}; t_stereo *stereo;
typedef struct {
float left;
float right;
} t_stereo;
int main(int argc, const char * argv[]) {
float *leftBuf = (float[4]){1,2,3,4};
float *rightBuf = (float[4]){5,6,7,8};
t_stereo *stereo; //how to store *leftBuf and *rightBuf into *stereo?
return 0;
}
所以我基本上希望*立体声同时包含*leftBuf和*rightBuf的数据
我想知道是否有简单的解决办法。我想最简单的解决办法是:
t_stereo *stereo = malloc(sizeof(t_stereo) * DATALEN);
int i;
for (i = 0; i < DATALEN; i++)
{
stereo[i].left = leftBuf[i];
stereo[i].right = rightBuf[i];
}
t_立体声*立体声=malloc(sizeof(t_立体声)*DATALEN);
int i;
对于(i=0;i
其中,
DATALEN
定义了缓冲区的长度我认为最简单的解决方案是:
t_stereo *stereo = malloc(sizeof(t_stereo) * DATALEN);
int i;
for (i = 0; i < DATALEN; i++)
{
stereo[i].left = leftBuf[i];
stereo[i].right = rightBuf[i];
}
t_立体声*立体声=malloc(sizeof(t_立体声)*DATALEN);
int i;
对于(i=0;i
其中
DATALEN
定义了缓冲区的长度您需要执行的操作。简而言之
function toStereo (left, right)
- loop for each left, right sample.
- store left sample in left channel,
- store right sample in right channel.
- end loop
你需要做什么。简而言之
function toStereo (left, right)
- loop for each left, right sample.
- store left sample in left channel,
- store right sample in right channel.
- end loop
为什么malloc和loop不是选项?代码将用于处理音频缓冲区。所以我在寻找最快的解决方案。那么你有一个慢的解决方案吗?请出示。考虑一下吧,因为这听起来好像你偏离主题了。展示你的代码,并要求进行以速度为中心的审查。这是最快的通用解决方案。或者将数据预交织。使用malloc和loop是最快的解决方案?为什么malloc和loop不是选项?代码将用于处理音频缓冲区。所以我在寻找最快的解决方案。那么你有一个慢的解决方案吗?请出示。考虑一下吧,因为这听起来好像你偏离主题了。展示你的代码,并要求进行以速度为中心的审查。这是最快的通用解决方案。或者将数据预交织。使用malloc和loop是最快的解决方案?