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: Also use the brand new builsystem that support OS X
[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 7743ca5132345894f8423c7287bb522411537b8d..0922fe247add3bfe1e833061d2b238a509efb57f 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 */
@@
-23,7
+24,7
@@
static void copy_tab(int src_tab[], int dest_tab[], unsigned src_tab_size, unsig
/* FIXME: I think it's worth doing some sanity checks on the array size:
* dest_tab_size >= src_tab_size */
if (src_tab == NULL || dest_tab == NULL) {
/* FIXME: I think it's worth doing some sanity checks on the array size:
* dest_tab_size >= src_tab_size */
if (src_tab == NULL || dest_tab == NULL) {
- printf("
p
lease ensure you have created both arrays beforehand\n");
+ printf("
P
lease ensure you have created both arrays beforehand\n");
return;
}
for (unsigned i = 0; i < src_tab_size; i++) {
return;
}
for (unsigned i = 0; i < src_tab_size; i++) {
@@
-41,8
+42,14
@@
int* concat_tab(int tab1[], unsigned tab_size1, int tab2[], unsigned tab_size2)
return tab_dest;
}
return tab_dest;
}
-int* resize_tab(int tab[], unsigned new_tab_size) {
+int* resize_tab(int tab[], unsigned
old_tab_size, unsigned
new_tab_size) {
tab = realloc(tab, sizeof(int) * 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;
+ }
+ }
return tab;
}
return tab;
}
@@
-58,7
+65,7
@@
unsigned count_tab_element(int tab[], unsigned tab_size, int element) {
return el_count;
}
return el_count;
}
-unsigned count_tab_criteria(int tab[], unsigned tab_size, c
ount
_criteria_cb c_criteria) {
+unsigned count_tab_criteria(int tab[], unsigned tab_size, c_criteria_cb c_criteria) {
unsigned cr_count = 0;
for (unsigned i = 0; i < tab_size; i++) {
unsigned cr_count = 0;
for (unsigned i = 0; i < tab_size; i++) {
@@
-78,6
+85,6
@@
bool is_odd(int a) {
}
}
-void sort_tab(int tab[], unsigned tab_size,
criteria_cb
criteria) {
- sort_bubble_array(tab, tab_size, criteria);
+void sort_tab(int tab[], unsigned tab_size,
s_criteria_cb sort_
criteria) {
+ sort_bubble_array(tab, tab_size,
sort_
criteria);
}
}