Assignment 2 To-Do List Manager in C Tasks Add a task Remove a task Display all tasks Save tasks to a file Load tasks from a file Error handling Dynamic memory allocation Dependencies gcc make How to run build $ make run $ make run Requirements Create a console-based to-do list manager in C. Implement functionalities for adding, removing, and displaying tasks. Save and load tasks from a file for persistent storage. Ensure proper error handling for invalid input and file I/O operations. Use dynamic memory allocation for managing tasks. Restrictions Avoid using complex data structures like linked lists; use arrays to store tasks. Do not use external libraries for file I/O operations. Ensure a user-friendly interface with clear instructions. Submission Guidelines Submit the source code files along with a Makefile for compilation. Include a README file providing instructions on how to use the to-do list manager. Discuss any challenges faced during implementation and how they were overcome.