如何确保指针不指向同一位置

How to ensure pointers don't point to the same place

本文关键字:位置 指针 何确保 确保      更新时间:2023-10-16

运行下面的代码,它得到57 57打印出来,我需要的是56 57。我知道这是因为指针都指向相同的位置,但我该如何避免呢?

int (*spriteArray[10])[8][8];
int i = 0;
void setup()
{
   Serial.begin(9600);
}
void loop()
{
someOtherMethod();
i++;
someOtherMethod();
someMethod();
  delay(100000);
}
void someOtherMethod()
{
    int sprite[8][8];
    spriteArray[i]= &sprite;
    sprite[0][0] = 56+i;
}
void someMethod()
{
  Serial.println(*spriteArray[0][0][0]);   
  Serial.println(*spriteArray[1][0][0]); 
}

someOtherMethod中,您存储指向局部变量的指针,该指针在函数返回后无效。对该指针解引用会导致未定义行为