Assignment 2: dynamic mystring declare a structure named mystring containing a char pointer and an integer containing the length of the string contained. write the following five functions void stringinit( mystring& s ); void stringfree( mystring& s ); void stringinput( mystring& s ); void stringoutput( const mystring& s ); void stringcopy( mystring& dest, const mystring& src ); where the input function gets a new string from the user (maximum length 80) and places it in an array allocated with new of exactly the same size as the number of characters input by the user. The pointer is stored in the passed object. the output functions prints the string in the passed object on the console. and the copy function copies the string and its length from the source structure to the destination structure. stringinit initializes both members to zero while stringfree deletes the contained pointer if it is non-null. declare an array of five mystrings in main, get them via the user using a loop calling stringinput. test the other functions as well from the main. each and every memory allocated with new should have a corresponding delete. NULL should not be stored in the char array, therefore the whole string can not be given to cout directly. also every mystring object must have its own array, i.e. two mystring objects (may be generated through stringcopy) should not contain pointers to the same memory location because this will cause one pointer to become dangling when the other string is passed to stringfree. WORK INDEPENDENTLY AND DO NOT DISCUSS WITH EACH OTHER AT ALL