fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main (void)
  6. {
  7. int *a, *b; //Инициализиуем два указателя на int
  8. int i;
  9.  
  10. srand (time (NULL)); //Семя от текущего времени для рандома
  11. a = calloc (10, sizeof (int)); //Выделяем область памяти для a и заполняем ее нулями
  12. //Можно также использовать malloc (sizeof (int) * 10), но массив будет забит оставшимися ранее данными
  13.  
  14. printf ("a:\n");
  15. for (i = 0; i < 10; i++) {
  16. a[i] = (rand () % 20) - 10; //Заполеняем
  17. printf ("%d ", a[i]);
  18. }
  19.  
  20. putchar ('\n');
  21. b = realloc (a, sizeof (int) * 15); //Копируем область a и расширяем ее и возвращаем указатель на эту область
  22. free (a); //Освобождаем a
  23. for (i = 10; i < 15; i++)
  24. b[i] = (rand () % 20) - 10;
  25.  
  26. printf ("b:\n");
  27. for (i = 0; i < 15; i++) {
  28. printf ("%d ", b[i]);
  29. }
  30.  
  31. putchar ('\n');
  32.  
  33. free (b);
  34. return 0;
  35. }
Runtime error #stdin #stdout #stderr 0s 2248KB
stdin
Standard input is empty
stdout
a:
7 6 -1 -7 -5 9 -3 6 -5 -6 
b:
0 6 -1 -7 -5 9 -3 6 -5 -6 -5 -10 -9 0 3 
stderr
*** Error in `./prog': double free or corruption (fasttop): 0x09199008 ***