Witam. Mam problem z kodem
#include <stdio.h>
#include <stdlib.h>
void add(int** ptab, int n, int new_elem)
{
if(ptab != NULL)
{
int* tablica = malloc((n+1)*sizeof(int));
if(tablica != NULL)
{//udalo sie utworzyc tablice
int i = 0;
for(; i < n; i++)
{//dla n = 0 nie wywoluje sie (dzieki czemu nie ma bledu)
tablica[i] = (*ptab)[i];
}
tablica[n] = new_elem;
free(*ptab);
*ptab = tablica;
}
}
}
main()
{
int* tablica = NULL;
int n = 0;
for(; n<10; n++) add(&tablica, n, 3*n);
if(tablica != NULL)
{
for(n=0; n<10; n++) printf("%d ", tablica[n]);
printf("\n");
free(tablica);
}
}
Konkretnie chodzi mi o wiersz 6, dlaczego działa skoro wcześniej ustawiamy ten wskaźnik na NULL? I co oznaczają dwa **.