函数更新指针变量不成功,不知道问题在哪?

2020-01-12 17:22发布

全局指针变量:
  1. ws2812_pixel_t *gtp_PixelList;
复制代码更新指针的函数:

  1. void WS2812_UpdatePixels(ws2812_pixel_t *ftp_PixelList,ws2812_pixel_t *ftp_PixelNewList)
  2. {
  3.     if(se_Ws2812Status == WS2812_IDLE)
  4.     {
  5.         ftp_PixelList   = ftp_PixelNewList;
  6.         se_Ws2812Status = WS2812_SNEDING_DATA;
  7.     }
  8. }
复制代码数组:
  1. ws2812_pixel_t code switch_1_steady_on[] =
  2. {
  3.     PIXEL_IS_RED,
  4.     PIXEL_IS_RED,
  5.     PIXEL_IS_RED,
  6.     PIXEL_IS_RED,
  7.     PIXEL_IS_RED,
  8.     PIXEL_IS_RED,
  9.     PIXEL_IS_RED,
  10. };
复制代码
函数应用:
  1. WS2812_UpdatePixels(gtp_PixelList,switch_1_steady_on);
复制代码执行上述语句之后,观察断点可以执行到ftp_PixelList   = ftp_PixelNewList;
但最终switch_1_steady_on的地址并没有传递给ftp_PixelList。一下脑塞了。
请坛友帮忙看看。
另,keil中除了用print的方法,可以直接观察到指针变量指向到什么地址吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
nanfang2000
1楼-- · 2020-01-12 18:11
 精彩回答 2  元偷偷看……
t3486784401
2楼-- · 2020-01-12 19:18
2L 说的已经很明白了。

函数无法修改参数原件的内容,除非传原件的地址。在这里,需要 ws2812_pixel_t** 类型
what007
3楼-- · 2020-01-12 21:01
楼上说的对,要用二级指针
mypc16888
4楼-- · 2020-01-12 23:46
使用二级指针
neutronlmk
5楼-- · 2020-01-13 03:48
收到。感谢几位。
落叶知秋
6楼-- · 2020-01-13 08:29
 精彩回答 2  元偷偷看……

一周热门 更多>