Analisei muitas perguntas semelhantes sobre esse assunto, mas a maioria parece se concentrar em um ponteiro sendo passado para uma função como parâmetro em vez do endereço do ponteiro, então não encontrei minha resposta.
Um segfault ocorre na linha 11. Por quê?
Saúde.
void allocateMem(int **ptr)
{
int i = 0 ;
*ptr = malloc(100 * sizeof(int)) ;
if(*ptr != NULL)
{
for(i = 0 ; i < 100 ; i ++)
{
*ptr[i] = i ; //segfault
printf("%d %d\n" , i , *ptr[i]) ;
}
free(*ptr) ;
}
else
exit(0) ;
}
int main(int argc , char *argv[])
{
int *ptr = NULL ;
allocateMem(&ptr) ;
return 0 ;
}