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

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条回答
xf331785508
1楼-- · 2020-01-13 13:28
neutronlmk 发表于 2019-8-30 09:43
收到。感谢几位。

你的问题搞定了吗,楼上几位的说法让我直接懵了。 经常这样用。数组名不就是第一元素的地址啊,赋给一级指针不就是正常的吗。    另外,看到你数组定义中了‘code'关键字,能说下你的平台吗?51, ARM?
nanfang2000
2楼-- · 2020-01-13 16:31
xf331785508 发表于 2019-8-30 09:51
你的问题搞定了吗,楼上几位的说法让我直接懵了。 经常这样用。数组名不就是第一元素的地址啊,赋给一级 ...

指针变量做参数传到函数其实本身是值的传递,变量已经是另一个变量了。你如果只是读指针指向的内容的话,这样是没问题的,因为这个地址已经传进去了。但是你要是想向外面返回指针指向的新地址,也就是改外面那个指针内容,那么你就得知道这个指针自己的地址,所以就是指针的指针
neutronlmk
3楼-- · 2020-01-13 17:53
还是没搞定.
全局变量:
  1. ws2812_pixel_t **gtpp_PixelList;
复制代码函数:
  1. void WS2812_UpdatePixels(ws2812_pixel_t **ftpp_PixelList,ws2812_pixel_t *ftp_PixelNewList)
  2. {
  3.     if(se_Ws2812Status == WS2812_IDLE)
  4.     {
  5.         ftpp_PixelList  = &ftp_PixelNewList;
  6.         se_Ws2812Status = WS2812_SNEDING_DATA;
  7.     }
  8. }
复制代码应用:
  1. WS2812_UpdatePixels(gtpp_PixelList,switch_1_steady_on);
复制代码还是没有得到想要的结果

neutronlmk
4楼-- · 2020-01-13 22:24
xf331785508 发表于 2019-8-30 09:51
你的问题搞定了吗,楼上几位的说法让我直接懵了。 经常这样用。数组名不就是第一元素的地址啊,赋给一级 ...

还没有搞定,在测试。
keil可以观察到指针指向了什么地址吗?我想用断点看一下。
Zphoenix
5楼-- · 2020-01-13 23:05
 精彩回答 2  元偷偷看……
neutronlmk
6楼-- · 2020-01-14 03:24
Zphoenix 发表于 2019-8-30 10:43

还是没得到想要结果