0

运行以下代码,打印出 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]); 

}
4

1 回答 1

8

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

于 2013-03-11T13:05:21.927 回答