-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.c
More file actions
99 lines (86 loc) · 2.46 KB
/
main.c
File metadata and controls
99 lines (86 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// This file is auto-generated by cyMemProfiler
// Version: 0.1
#include <stdio.h>
#include <stdlib.h>
#include "wrapperFuncs.h"
typedef struct
{
int x;
int y;
} Point;
void print_point(Point *p)
{
logScopeEnter(0);
printf("Point: (%d, %d)\n" + logExtParam((void *) "Point: (%d, %d)\n", 0), (p = logAccess(p, 0))->x + logExtParam((void *) p->x, 1), (p = logAccess(p, 1))->y + logExtParam((void *) p->y, 2));
logScopeExit(0);
}
void initialize_point(Point *p, int x, int y)
{
logScopeEnter(1);
(p = logAccess(p, 2))->x = x;
(p = logAccess(p, 3))->y = y;
logScopeExit(1);
}
void modify_point(Point *p, int dx, int dy)
{
logScopeEnter(2);
(p = logAccess(p, 4))->x += dx;
(p = logAccess(p, 5))->y += dy;
logScopeExit(2);
}
int *initialize_array(int size)
{
logScopeEnter(3);
int *arr = (int *) mallocWrapper(size * (sizeof(int)) + logExtParam((void *) (size * (sizeof(int))), 3));
for (int i = 0; i < size; i++)
{
logScopeEnter(4);
(arr = logAccess(arr, 6))[i] = i;
logScopeExit(4);
}
logReturn();
return arr;
logScopeExit(3);
}
void print_array(int *arr, int size)
{
logScopeEnter(5);
printf("Array: " + logExtParam((void *) "Array: ", 4));
for (int i = 0; i < size; i++)
{
logScopeEnter(6);
printf("%d " + logExtParam((void *) "%d ", 5), (arr = logAccess(arr, 7))[i] + logExtParam((void *) arr[i], 6));
logScopeExit(6);
}
printf("\n" + logExtParam((void *) "\n", 7));
logScopeExit(5);
}
int main()
{
// Register the function to free allocList prior to exit
if (atexit(atExitFunc) != 0) {
fprintf(stderr, "cyMemProfiler: Failed to register the exit function.");
return 1;
}
logScopeEnter(7);
int *arr = initialize_array(5);
print_array(arr, 5);
arr = (int *) reallocWrapper(arr + logExtParam((void *) arr, 8), 10 * (sizeof(int)) + logExtParam((void *) (10 * (sizeof(int))), 9));
for (int i = 5; i < 10; i++)
{
logScopeEnter(8);
(arr = logAccess(arr, 8))[i] = i;
logScopeExit(8);
}
print_array(arr, 10);
Point *p = (Point *) mallocWrapper(sizeof(Point) + logExtParam((void *) (sizeof(Point)), 10));
initialize_point(p, 10, 20);
print_point(p);
modify_point(p, 5, -10);
print_point(p);
freeWrapper(arr + logExtParam((void *) arr, 11));
freeWrapper(p + logExtParam((void *) p, 12));
logReturn();
return 0;
logScopeExit(7);
}