-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathleaking.c
More file actions
66 lines (56 loc) · 710 Bytes
/
leaking.c
File metadata and controls
66 lines (56 loc) · 710 Bytes
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
/*
** Testing main for wraloc
*/
#include "wraloc.h"
char **tab_alloc(int x, int y)
{
char **tab;
size_t i;
if (!(tab = (char **)malloc((y + 1) * sizeof(char *))))
return (NULL);
i = 0;
while (i < x)
{
if (!(tab[i] = (char *)malloc(x * sizeof(char))))
return (NULL);
i++;
}
tab[i] = NULL;
return (tab);
}
void tab_free(char **tab)
{
size_t i;
i = 0;
while (tab && tab[i + 1])
{
free(tab[i]);
tab[i] = NULL;
i++;
}
if (tab)
{
free(tab);
tab = NULL;
}
}
void f3(char ***tab)
{
*tab = tab_alloc(3, 3);
}
void f2(char ***tab)
{
f3(tab);
}
void f1(char ***tab)
{
f2(tab);
}
int main(void)
{
char **tab;
f1(&tab);
tab_free(tab);
free(NULL);
return (0);
}