repositories
/
TD_C.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TP 13 exo1: Only free when needed the array
[TD_C.git]
/
TP_13
/
exo1
/
lib
/
array.c
diff --git
a/TP_13/exo1/lib/array.c
b/TP_13/exo1/lib/array.c
index db8ab7e408d625d00db9873d5c363d5d22d1e0c8..4445ca81fa00178d9b78d9b07f2656597300aa0a 100644
(file)
--- a/
TP_13/exo1/lib/array.c
+++ b/
TP_13/exo1/lib/array.c
@@
-15,7
+15,8
@@
int* create_tab(int tab[], unsigned tab_size) {
}
void free_tab(int tab[]) {
}
void free_tab(int tab[]) {
- free(tab);
+ if (!tab)
+ free(tab);
}
/* we suppose both tabs are already created */
}
/* we suppose both tabs are already created */
@@
-43,6
+44,7
@@
int* concat_tab(int tab1[], unsigned tab_size1, int tab2[], unsigned tab_size2)
int* resize_tab(int tab[], unsigned old_tab_size, unsigned new_tab_size) {
tab = realloc(tab, sizeof(int) * new_tab_size);
int* resize_tab(int tab[], unsigned old_tab_size, unsigned new_tab_size) {
tab = realloc(tab, sizeof(int) * new_tab_size);
+ /* zero by default the added cells */
if (old_tab_size < new_tab_size) {
for (unsigned i = old_tab_size; i < new_tab_size; i++) {
tab[i] = 0;
if (old_tab_size < new_tab_size) {
for (unsigned i = old_tab_size; i < new_tab_size; i++) {
tab[i] = 0;