3
I made a program that asks for name and surname to be concatenated through a function:
#include <stdio.h>
#include <string.h>
int main(void){
//Declarando Funçãoo
char retornaNome(char nome[], char sobrenome[]);
//Ariaveis
char nome[20], sobrenome[20], nomeFinal[100];
//Entrando com o nome
printf("Digite seu nome: ");
setbuf(stdin, 0);
fgets(nome, 20, stdin);
nome[strlen(nome)-1] = '\0';
//Entrando com sobrenome
printf("Digite seu sobrenome: ");
setbuf(stdin, 0);
fgets(sobrenome, 20, stdin);
sobrenome[strlen(sobrenome)-1] = '\n';
//Chamando a função
nomeFinal = retornaNome(nome, sobrenome);
printf("%s\n", nomeFinal);
return 0;
}
char retornaNome(char nome[], char sobrenome[]){
char nomeFinal[60];
//Calculando tamanho das palavras
int x = strlen(nome);
int y = strlen(sobrenome);
//Adribuindo nome e sobrenome a nomeFinal
for(int i = 0; i < x; i++){
nomeFinal[i] = nome[i];
}
for(int i = 0; i < y; i++){
nomeFinal[x+i] = nome[i];
}
//Retornando nomeFinal
return nomeFinal;
}
But this giving 3 exits
Retorna.c: In function ‘main’: Retorna.c:19:15: error: assignment to expression with array type nomeFinal = retornaNome(nome, sobrenome); ^ Retorna.c: In function ‘retornaNome’: Retorna.c:42:12: warning: return makes integer from pointer without a cast [-Wint-conversion] return nomeFinal; ^ Retorna.c:42:12: warning: function returns address of local variable [-Wreturn-local-addr]
2 are just one warnings, but error at first I found no answer on how to resolve this error.
This answer deserved a better question ;)
– Jorge B.