C:\Users\UJJVAL\Documents\Arduino\libraries\easyMesh-master\src/easyMesh.h:105:25: note: no known conversion for argument 1 from 'String* (*)[5]' to 'String&'
exit status 1
no matching function for call to 'easyMesh::sendBroadcast(String* (*)[5])'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
An array name by itself is the memory address of where that array is stored in memory. Doing something like this:
mesh.sendBroadcast(&msg); ////error is here
It the coding equivalent of stuttering; you're sort of saying "the address of the address of msg". Get rid of the address-of operator (&). Also, what happens if you change this:
String *msg[5];
to this:
char *msg[5];
C strings (note lower case 's') are usually a better choice than the String class (note uppercase 'S'). If the library that you are using insists on the String object, the change won't work, but I'd be surprised if it was coded that way.
Finally, most C++ objects only need their init() method called once, and that usually takes place in the setup() function. Its purpose is to define the operating environment in which the object will be used. Once it's set, other properties and methods of the class are used to manipulate the object and the init() method is never called again.