如何确保指针不指向同一位置
How to ensure pointers don't point to the same place
运行下面的代码,它得到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
中,您存储指向局部变量的指针,该指针在函数返回后无效。对该指针解引用会导致未定义行为。
相关文章:
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- C++指针数组到字符数组中的特定位置
- 声明指针时更改星号的位置
- 如何在单个链表中交换两个节点的位置,只修改指针
- 当原始数据是常量时,修改指针指向的位置是 UB 吗?
- 如果访问对象,则指向的对象内部的指针会更改内存位置
- 访问违规读取位置传递指针以在c中写入的DLL中起作用
- 如何在内存位置取消指针,并用值启动它
- C++ - 智能指针 - 访问冲突读取位置0xDDDDDDDD
- 最简单的方法使多个指针一次指向同一位置,一次只处理2个位置
- 在指针中保存确定的位置
- 通过在此指针上放置新位置重新初始化对象时未定义的行为
- Visual Studio 中的"指向引用的指针"错误不会按发生位置的文件名显示
- 将指针数组传递给数组,以便在 malloc() 发生的位置发挥作用
- 为什么在递增后使用 [] 运算符访问指针数组会返回错误地址的当前内存位置
- 试图读取AIFF文件意外错误与指针位置等有关
- 使用指针在字符串中获取字符的位置
- qtextstream弄乱了其位置指针
- 我如何知道一个位置指针在二维数组的行数
- 修正:访问冲突读取位置(指针到字符串数组)