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
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
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
A call to process_cal3 will use identical arguments to that from the previous assignment. For
./process_cal3 –start=2021/12/10 –end=2021/12/12 –file=one.ics
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: firstname.lastname@example.org 微信:itcsdx