Angel David Yaguana Hernandez
/
CPP_realloc
realloc, descripcion y ejemplo
main.cpp@0:d75064e521e3, 2012-04-03 (annotated)
- Committer:
- sherckuith
- Date:
- Tue Apr 03 21:03:00 2012 +0000
- Revision:
- 0:d75064e521e3
realloc, descripcion y ejemplo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sherckuith | 0:d75064e521e3 | 1 | #include "mbed.h" |
sherckuith | 0:d75064e521e3 | 2 | /* realloc example: rememb-o-matic */ |
sherckuith | 0:d75064e521e3 | 3 | #include <stdio.h> |
sherckuith | 0:d75064e521e3 | 4 | #include <stdlib.h> |
sherckuith | 0:d75064e521e3 | 5 | |
sherckuith | 0:d75064e521e3 | 6 | int main () |
sherckuith | 0:d75064e521e3 | 7 | { |
sherckuith | 0:d75064e521e3 | 8 | int input,n; |
sherckuith | 0:d75064e521e3 | 9 | int count=0; |
sherckuith | 0:d75064e521e3 | 10 | int * numbers = NULL; |
sherckuith | 0:d75064e521e3 | 11 | int * more_numbers; |
sherckuith | 0:d75064e521e3 | 12 | |
sherckuith | 0:d75064e521e3 | 13 | do { |
sherckuith | 0:d75064e521e3 | 14 | printf ("Enter an integer value (0 to end): "); |
sherckuith | 0:d75064e521e3 | 15 | scanf ("%d", &input); |
sherckuith | 0:d75064e521e3 | 16 | count++; |
sherckuith | 0:d75064e521e3 | 17 | |
sherckuith | 0:d75064e521e3 | 18 | more_numbers = (int*) realloc (numbers, count * sizeof(int)); |
sherckuith | 0:d75064e521e3 | 19 | |
sherckuith | 0:d75064e521e3 | 20 | if (more_numbers!=NULL) { |
sherckuith | 0:d75064e521e3 | 21 | numbers=more_numbers; |
sherckuith | 0:d75064e521e3 | 22 | numbers[count-1]=input; |
sherckuith | 0:d75064e521e3 | 23 | } |
sherckuith | 0:d75064e521e3 | 24 | else { |
sherckuith | 0:d75064e521e3 | 25 | free (numbers); |
sherckuith | 0:d75064e521e3 | 26 | puts ("Error (re)allocating memory"); |
sherckuith | 0:d75064e521e3 | 27 | exit (1); |
sherckuith | 0:d75064e521e3 | 28 | } |
sherckuith | 0:d75064e521e3 | 29 | } while (input!=0); |
sherckuith | 0:d75064e521e3 | 30 | |
sherckuith | 0:d75064e521e3 | 31 | printf ("Numbers entered: "); |
sherckuith | 0:d75064e521e3 | 32 | for (n=0;n<count;n++) printf ("%d ",numbers[n]); |
sherckuith | 0:d75064e521e3 | 33 | free (numbers); |
sherckuith | 0:d75064e521e3 | 34 | |
sherckuith | 0:d75064e521e3 | 35 | return 0; |
sherckuith | 0:d75064e521e3 | 36 | } |