消息队列传递数组的时候不能传递仅作为局部变量的指针,因为局部变量存在栈中,而我们可以观察到消息队列是开辟在堆中的数据,
所以如果消息队列里面有个成员是一个局部变量的指针,那么极大可能导致收到的消息队列里面该数据出现错误
如下
这样写是可以的,因为这里data_buf在堆区是有空间的
但是如果传递指针
这样,那就不可以,因为上层cmd到发消息的data_buf一直是一个局部变量,这样传递应该是不可以的
个人理解 ,欢迎指正!!!!!!
消息队列传递数组的时候不能传递仅作为局部变量的指针,因为局部变量存在栈中,而我们可以观察到消息队列是开辟在堆中的数据,
所以如果消息队列里面有个成员是一个局部变量的指针,那么极大可能导致收到的消息队列里面该数据出现错误
如下
这样写是可以的,因为这里data_buf在堆区是有空间的
但是如果传递指针
这样,那就不可以,因为上层cmd到发消息的data_buf一直是一个局部变量,这样传递应该是不可以的
个人理解 ,欢迎指正!!!!!!