gpt4 book ai didi

c - 优化/使用指针访问数组

转载 作者:行者123 更新时间:2023-11-30 14:21:56 24 4
gpt4 key购买 nike

我有一个关于优化的练习。我需要优化一个将图像旋转 45 度的程序。我知道使用指针访问数组更有效,因此我尝试了以下更改 - 原始代码:

RGB* nrgb = (RGB *)malloc(imgSizeXY*3);//3=sizeof(RGB)
//...
for (i=imgSizeY-1; i>=0; --i)
{
for (j=imgSizeX-1; j>=0; --j)
{
//...
int y=(i*imgSizeX+j);
nrgb[y].r = *imgInd; //*imgInd computed earlier

变化:

    RGB* nrgb = (RGB *)malloc(imgSizeXY*3);//3=sizeof(RGB)
RGB* rgbInd = nrgb+imgSizeXY-1;
for (i=imgSizeY-1; i>=0; --i)
{
for (j=imgSizeX-1; j>=0; --j)
{
rgbInd->r=*imgInd;
--rgbInd;

但是当使用指针时,程序会产生错误的输出。我已经盯着它看了好几个小时了,但仍然不知道为什么。有任何想法吗?非常感谢!

最佳答案

通过指针访问数组元素和通过索引访问数组元素没有区别。您可以看到 if 生成汇编代码。索引表示法更简单。

关于c - 优化/使用指针访问数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291493/

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