Лекция 07 - Динамична памет

Линк към презентацията

А клас

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main() {
    int *arr;

    arr = malloc(10 * sizeof(int));

    for(int i = 0; i < 10; i++) {
        arr[i] = i;
        printf("%d %d\n", i, arr[i]);
    }

    memset(arr, -1, 10 * sizeof(int));

    for(int i = 0; i < 10; i++) {
        printf("%d %d\n", i, arr[i]);
    }

    free(arr);
    return 0;
}

Б клас

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
  int size = 10;
  int *arr = malloc (size * sizeof (int));

  for (int i = 0; i < size; ++i)
    {
      arr[i] = i;
      printf ("%d %d\n", i, arr[i]);
    }

  memset (arr, 0, size * sizeof(int));

  for (int i = 0; i < size; ++i)
    {
      printf ("%d %d\n", i, arr[i]);
    }

  free (arr);
  arr = NULL;

  if (arr != NULL)
    printf ("%d\n", arr[0]);

  return 0;
}