Struct não salva no arquivo

Pessoal, help-me!
Meu código não está salvando no arquivo.

identar texto pré-formatado por 4 espaços

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

//Definindo a placa. TP_PLACA
typedef struct placas{
char letra[3];
int numero[4];
}TP_PLACA;

//Definindo o ano. TP_DATA
typedef struct datas{
int mes;
int ano;
}TP_DATA;

// Definindo a estrutura do carro. TP_CARRO
typedef struct carros{
char marca[15];
char modelo[15];
TP_DATA ano_fab;
TP_DATA ano_mod;
TP_PLACA placa;
}TP_CARRO;

//Definindo a função para inserir um novo carro.
void insere(TP_CARRO carro){
printf(“Digite a marca do carro: \n”);
scanf("%s", &carro.marca);
printf(“Digite o modelo do carro: \n”);
scanf("%s", &carro.modelo);
printf(“Digite o ano de fabricação: \n”);
scanf("%d", &carro.ano_fab);
printf(“Digite o ano do modelo: \n”);
scanf("%d", &carro.ano_mod);
printf(“Digite a placa: \n”);
scanf("%s", &carro.placa);
}

//Definindo a função para opções.
void opcao_num(int num){
printf( “(1) Cadastrar um veículo:\t”
“(2) Listar veículos:\t”
“(3) Listar por ano_modelo:\t”
“(4) Listar por ano_fabricação:\n\n”);
}

int main(int argc, char **argv) {
setlocale(LC_ALL, “Portuguese”);

FILE *cadastro;
TP_CARRO c1;
int opcao = 0;
char buffer[100];

if(cadastro = fopen ("/Users/marlon/Aulas/cadastro.txt", "w")){
	printf("Bem-vindo so Sistema de Veículos!\n\n");
}
else{
	printf("Erro ao abrir arquivo do sistema.\n");
}

opcao_num(opcao);

printf("Escolha uma das opções acmia: ");
scanf("%d", &opcao);

if(opcao == 1){
insere(c1);
sprintf(buffer, “Dados do veiculo: %s”);
fputs(buffer, cadastro);

	fprintf(cadastro, "%s", &c1);
	fclose(cadastro);
	printf("Cadastro realizado com sucesso!\n");

}
else if(opcao == 2 || opcao == 3 || opcao == 4){
printf(“Em manuntenção…”);

}
else
printf(“Opção inválida…”);

return 0;

}