如何确保指针不指向同一个地方

时间:2013-03-11 13:03:42

标签: c++ arrays pointers

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

}

1 个答案:

答案 0 :(得分:8)

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

相关问题