Exclude any existing source code files that may already be in your IDE project and add a new one,naming it C1A7E2_main.c. Write a program in that file to obtain nutritional information about severalfoods from the user then display a table containing this information.The number of foods to be displayed is determined by the value of a macro named LUNCH_QTY thatyou must define and the information about each food is kept in a structure of the following type (Thedata types and member names must not be modified):struct Food{char *name; /* "name" attribute of food */int weight, calories; /* "weight" and "calories" attributes of food */};Function main must, and in the order specified:1. in one single statement:a. define the struct Food data type shown above and in the same statementb. declare automatic array lunches[LUNCH_QTY], and in the same statementc. explicitly initialize only elements lunches[0] and lunches[1], initializing them to anapple and a salad, respectively. Assume that an apple weighs 4 ounces and contains100 calories and a salad weighs 2 ounces and contains 80 calories.2. loop through each of the non-explicitly-initialized elements of the array and do the following inorder during each iteration:a. prompt the user to enter the whitespace-separated name, weight, and calories of afood in that order on the same line; the food name must not contain whitespace;b. store the food name into a temporary character buffer you’ve declared and store theweight and calories values directly into the corresponding members of the structure inthe current lunches array element;c. determine the exact amount of space necessary to represent the food name includingits null terminator character;d. dynamically allocate the exact amount of memory determined in the previous step andstore the pointer to it in the name member of the structure in the current lunches arrayelement. Do not use calloc or realloc. If dynamic allocation fails output an errormessage to stderr and terminate the program with an error code.e. Copy the food name into the dynamically allocated memory using the memcpy function.3. display a table of all foods in the array along with their weights and calorie content, aligning theleft edges of all foods and the least significant digits of all weights and calories. There must benothing between these entries except the spaces needed for alignment (no commas, dividinglines, etc.).4. free all dynamically allocated memory.Your code must work for any value of macro LUNCH_QTY greater than or equal to 2 as well as for caseswhere the weight and calories are both 0. Manually re-run your program several times, testing withdifferent values of LUNCH_QTY and different foods.HintHow to define a structure type and declare and initialize an array of them in 1 statement:Here is an example in which all members of the first 3 structures in an array of 4 structures namedboxes are initialized explicitly, while all members of the last structure in that array are initializedimplicitly:struct Box{int height, width, depth, weight;} boxes[4] = { { 8, 5, 7, 100 }, { 2, 9, 1, 4 }, { 26, 78, 16, 99 } };