For this assignment you must ensure your work executes correctly on the virtual machines you installed as part of Assignment #0 subsequently referred to as Senjhalla. This is our “reference platform”. This same environment will also be used by the course instructor and the rest of the teaching team when evaluating submitted work from students.
All test files for this assignment are available on the SENG server in /seng265work/A2/ and you must scp in a manner similar to previous assignments, in order to copy these files into your Senjhalla
Any programming done outside of Senjhalla might not work during evaluation, which will result in lost marks or even 0 marks for the assignment.
This assignment is to be completed by each individual student (i.e., no group work).
Naturally you may want to discuss aspects of the problem with fellow students, and such discussion is encouraged. However, sharing of code fragments is strictly forbidden. If you are still unsure regarding what is permitted or have other questions about what constitutes appropriate collaboration, please contact the course instructor. Note: Code similarity analysis tools are used to examine submitted work.
Objectives of this assignment
• Revisit the C programming language, this time using dynamic memory.
• Use Git to manage changes in your source code and annotate the evolution of your solution with messages provided during commits.
• Test your code against the provided test cases.
• Use valgrind to determine how effective your solution is in its management of dynamic memory.
You are to write an implementation again in C such that:
• only dynamic memory is used to store event info, and
• only linked-list routines are used (i.e. arrays of events are not permitted).
In addition to these requirements, the program itself now consists of several files, some of which are C source code, one of which is for build management:
• emalloc.[ch]: Code for safe calls to malloc, as is described in lectures, is available here.
• ics.h: Type definition for events.
• linky.[ch]: Type definitions, prototypes, and codes for the singly-linked list implementation described in lectures. You are permitted to modify these routines or add to these routines in order to suit your solution. Regardless of whether or not you do so, however, you are fully responsible for any segmentation faults that occur as the result of this code’s operation.
• makefile: This automates many of the steps required to build the process_cal3 executable, regardless of what files (.c or .h) are modified. The Unix make utility will be described in lectures.
• process_cal3.c: A starter file.
You must ensure all of these files are submitted in brightspace. DO NOT add any extra files.
A call to process_cal3 will use identical arguments to that from the previous assignment. For example:
./process_cal3 –start=2021/12/10 –end=2021/12/12 –file=one.ics
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: firstname.lastname@example.org 微信:itcsdx