diff --git a/calculator/ANSWERS.md b/calculator/ANSWERS.md index f04cd81f31d7ea28ff221087b88e8bbcd7d2f6ee..b5b45bb6119a7e0288ae0d2be4bea621e61304df 100644 --- a/calculator/ANSWERS.md +++ b/calculator/ANSWERS.md @@ -1,54 +1,10 @@ -<!-- EX2 --> -void foo(int a) { - a += 3; -} -<!-- a=5 --> -void bar(int *a) { - *a += 3; -} -<!-- a=8 --> -void baz(int *a) { - a += 3; -} -<!-- adresse de a +3 p.e erreur--> -int main() { - int a = 5; - foo(a); - bar(&a); - baz(&a); -} -<!-- EX 2 --> -char *foo(int a) { - char tab[a]; - <!-- manque un malloc sinon le return ne marchera pas (adresse invalide en dehors de la fonction) --> - for (int i = 0; i < a; ++i) { - tab[i] = 'a'; - } - return tab; -} +ex 1: +1. copie a reste 5 +2. valeur de a + 3 +3. adresse de a + 3 possible erreur -char *bar(int a) { - char *tab = malloc(a); - for (int i = 0; i < a; ++i) { - tab[i] = 'a'; - } - return tab; -} - -void baz(char *tab, int b) { - tab = malloc(b); - for (int i = 0; i < a; ++i) { - tab[i] = 'a'; - } -} - -int main() { - char *a = foo(4); <!-- a=[a,a,a,a] --> - char *b = bar(4); - char *c = malloc(4); - baz(c, 4); - free(a); - free(b); - free(c); -} +ex 2: +1. manque un malloc sinon le return ne marchera pas (adresse invalide en dehors de la fonction) +2. corriger : malloc(sizeof(char)*a) a=[a,a,a,a] +3. malloc 1 fois en trop