Witam. Otóż posiadam taki program który tworzy, wczytuje, wypisuje i usuwa tablice dynamiczną. Do każdego zadania przypisana jest odpowiednia funkcja, aczkolwiek waHam się co do tej ostatniej, a mianowicie usuwania. Program się kompiluje lecz nie wiem dlaczego moja tablica nie jest usuwana z pamięci. Proszę o pomoc. Pozdrawiam
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int tworz(int n);
void wczytaj(int *tab,int n);
void drukuj(int *tab,int n);
void usun(int *tab);
int main(int argc, char *argv[])
{
int n;
int *tab;
int wybor;
printf("Podaj wielkosc tablicy");
scanf("%d",&n);
do
{
scanf("%d",&wybor);
switch(wybor)
{
case 1:
*tab=tworz(n);
break;
case 2:
wczytaj(tab,n);
break;
case 3:
drukuj(tab,n);
break;
case 4:
usun(*tab);
break;
}
}while(wybor);
system("PAUSE");
return 0;
}
int tworz(int n)
{
return (int)calloc(n,sizeof(int));
}
void wczytaj(int *tab,int n)
{
int i;
for(i=0;i<n;++i)
{
tab[i]=rand()%20;
}
}
void drukuj(int *tab,int n)
{
int i;
for(i=0;i<n;++i)
{
printf("%d element jest rowny: %d\n",i+1,tab[i]);
}
}
void usun(int *tab)
{
printf("Usunales tablice\n");
free(tab);
}