При использовании msgsnd структура, упомянутая на man-странице, равна
struct mymsg {
long mtype; /* message type */
char mtext[1]; /* body of message */
};
Но если вы используете его как
func(char *array, int sizeofarray)
{
struct mymsg {
long mtype; /* message type */
char *ptr; /* body of message */
};
msgq.mtype = 1;
msgq.ptr = array;
msgsnd(msqid, &msgq, sizeofarray, 0);
}
Присвойте ptr некоторому локальному массиву [200] (массив можно получить как параметр в функции), сообщение, полученное на другой стороне, является нежелательным. Почему это?