Mam zrobić coś takiego:
Zadeklaruj tablicę dynamiczną typu int.
(tablica dynamiczna typu int = wskaźnik na typ int*)
Z klawiatury wczytaj liczbę całkowitą.
Ustaw rozmiar tablicy (liczbę jej elementów) na tą wartość. Wykorzystaj funkcję malloc().
Zrób zabezpieczenie, sprawdzające poprawność przydziału pamięci. Wydrukuj tablicę na ekranie (powinny być „śmieci z pamięci”). Usuń tablicę z pamięci.
Wyzeruj wskaźnik.
napisałem taki kod, ale drukuje same 0, a nie te 'śmieci z pamięci'. co jest nie tak?
#include <stdio.h>
#include <stdlib.h>
void Zadanie1()
{
int *tab;
int x;
printf("Podaj liczbe calkowita:\n");
scanf("%d", &x);
tab = malloc(x * sizeof(int) );
if(tab == NULL)
{
printf("Rezerwacja pamieci nie powiodla sie\n");
}
else
{
for(int i = 0; i<x; i++)
{
printf("%d ", tab[i]);
}
}
free(tab);
tab = NULL;
putchar('\n');
}
int main()
{
printf("Zadanie 1:\n");
Zadanie1();
return 0;
}
CloudProśmieci
jak się dostanie pamięć, którą ten sam program uprzednio uwolnił. Ale raczejpierwotnych śmieci
czy czegoś po innych programach się nie dostanie w żadnym sensownym systemie - ze względów bezpieczeństwa.CloudPro