я learnig как код на C. я должен создать запись для человека, с днем рождения и идентификационный номер код состоит из 3 файловвозвращаемое значение 3221225477 после окончания программы
кулак заголовок
// definição do tipo
typedef int vetor[10];
typedef struct
{
char nome[50];
vetor nasceu;
vetor cpf;
} dados ;
void cadastro (dados*, char[50], vetor, vetor);
, то есть определения заголовка
#include <stdio.h>
#include <string.h>
#include "cadastro.h"
void cadastro (dados *usuario, char name[50], vetor ddn, vetor cpf)
{
int i;
strcpy(usuario->nome,name);
for (i = 0; i < 50; i++)
{
usuario->nasceu[i] = ddn[i];
}
for (i = 0; i < 10; i++)
{
usuario->cpf[i] = cpf[i];
}
}
и последнего файла использует заголовок для создания запись
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cadastro.h"
int preenche_cadastro (char a[],vetor b,vetor c)
{
int i;
printf ("inserir nome: ");
gets (a);
printf("inserir data de nascimento (campos separados por espaco): ");
for (i = 0; i < 3; i++)
{
scanf("%d",&b[i]);
}
printf ("inserir CPF (campos separados por espaco): ");
for (i = 0; i < 4; i++)
{
scanf("%d",&c[i]);
}
return (0);
}
int imprime_cadastro (dados usuario)
{
printf("\nnome: %s",usuario.nome);
printf("\ndata de nascimento: %d/%d/%d\n", usuario.nasceu[0],usuario.nasceu[1],usuario.nasceu[2]);
printf("CPF: %d . %d . %d - %d\n", usuario.cpf[0],usuario.cpf[1],usuario.cpf[2],usuario.cpf[3]);
return(0);
}
int main(void)
{
dados new_entry;
char name[50];
vetor born, cpf;
int i;
preenche_cadastro (name,born,cpf);
cadastro(&new_entry, name, born, cpf);
imprime_cadastro(new_entry);
return (0);
}
я не знаю, как для отладки, но, насколько я мог судить, `вина Сегментация» происходит только на линии
return (0);
я схожу с ума здесь , Кто-нибудь может мне помочь?
Извините за мой английский, это не родной язык
Примечание: 'return' - это утверждение, а не функция. Скобки не требуются и не рекомендуются большинством программистов, поскольку они делают код менее читаемым. – Olaf
Не все осуждают круглые скобки вокруг выражения после выражения 'return'. И они существенно не влияют на читаемость кода. OTOH, интервал должен быть последовательным - согласованность очень важна. –
См. [Почему функция 'gets()' опасна для использования] (http://stackoverflow.com/questions/1694036/why-is-the-gets-function-dangerous-why-should-it-not -be-used), почему вы никогда не должны писать код, который использует 'gets()'. –