Cześć,
mam problem z funkcją malloc, konkretnie gdy przydzielam pamięć w funkcji main, program poprawnie powiadamia o niemożności przydzielenia pamięci gdy tablica liczb jest zbyt duża. Napisałem jednak funkcję za pomocą której przydzielam pamięć:
int przydziel(int n, int m, int ** *tab)
{
int j;
*tab=malloc(n*sizeof(int*));
if(*tab==NULL)
{
printf("nie mozna przydzielic pamieci\n");
return 1;
}
else{
for(j=0; j<n; j++)
{
*(*tab+j)=malloc(m*sizeof(int));
if(*(*tab+j)==NULL)
{
printf("nie mozna przydzielic\n");
return 1;
}
}
return 0;
}
}
przy użyciu program wyświetla komunikat o nie przydzieleniu pamięci jednak nie zwraca wartości 1 a "wysypuje" się. Jestem ciekaw, dlaczego tak się dzieje?