Erro de segmentation fault

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
int idade;
char nome[50];
float altura;
} PESSOA;

void leNomeArquivoEntrada(char *nome){
scanf("%s",nome);
}

int abreArquivoAEntrada(FILE* arq, char* nome){
arq = fopen(nome, “r”);
if (arq == NULL) {
return 0;
} else {
return 1;
}
}

int leDadosUmaPessoa(PESSOA* p, FILE arq){
int *idade;
char nome[50];
float *altura;

if (fscanf(&arq, "%i", idade) == EOF ||
    fscanf(&arq, "%s", nome) == EOF ||
    fscanf(&arq, "%f", altura) == EOF){
    return 0;
}
p->idade = *idade;
strcpy(p->nome, nome);
p->altura = *altura;
/*
 p->idade = idade;
p->nome = nome;
p->altura = altura;
 */

return 1;

}

int main() {

char S1[50];

PESSOA Povo[10], P;

FILE *Arq;
int i;

leNomeArquivoEntrada(S1);
if (abreArquivoAEntrada(Arq, S1) == 1) {
    do{
        if (leDadosUmaPessoa(&P, *Arq)== 1) {
            Povo[i] = P;
            i++;
            
        } else break;
        
    } while(1);
    
    /*
    
    fechaArquivo(Arq);
    
    ordenaVetor(Povo, i);
    
    imprimeVetor(Povo,i);
     */
    
}     else printf("Erro na abertura do arquivo");

return 0;

}

Estou tendo erro de segmentation fault.

Faça depuração / debug e veja em que linha dá o erro.