For this API, BaseType_t xQueueSend(QueueHandle_t xQueue, const void * pvItemToQueue, TickType_t xTicksToWait);
pvItemToQueue
A pointer to the item that is to be placed on the queue. The size of the items the queue will hold was defined when the queue was created, so this many bytes will be copied from pvItemToQueue into the queue storage area.
I want to pass char array as parameter to pvItemToQueue argument.
char menu[]={"This is String"};
Case - 1:
xQueueSend(uart_write_queue,menu,portMAX_DELAY);
as menu will give starting address of array.
Case - 2:
char *pData = menu;
xQueueSend(uart_write_queue,&pData,portMAX_DELAY);
Second case is correct. But Can someone explain difference between two and why Case - 1 is wrong?