STM32F4 C指针

2019-07-20 05:53发布

为什么图一里面的Addr等于0呢?求助!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
正点原子
1楼-- · 2019-07-20 06:37
 精彩回答 2  元偷偷看……
胥耀YaoXu
2楼-- · 2019-07-20 08:46
正点原子 发表于 2018-9-26 02:15
说明你赋值的就是0

图一里面我有返回值啊(return &pObjDepInfo->pDiagram[label])
civic7366
3楼-- · 2019-07-20 13:32
檢查看看函式裡的返回值是不是真的非0
胥耀YaoXu
4楼-- · 2019-07-20 16:30
 精彩回答 2  元偷偷看……
edmund1234
5楼-- · 2019-07-20 17:32
这个写法有问题的
u8  aa=12, bb=34;

fun(aa, bb);  // 调用一函数

而函数是 u8* fun(u8 abc, u8 cde){

    return &abc;
}

函数返回的不是aa的地址, 返回的是局部变量abc在栈的地址, 编译应该是认为它没意义的, 优化掉了, 所以就变成是0
edmund1234
6楼-- · 2019-07-20 22:06
函数的参数如果是结构体, 就传指针, 否则既浪费栈的空间, 又减慢CPU的执行速度, 可谓百害而无一利, 必须紧记这一条

一周热门 更多>