I'm trying to allocate dynamically, but the error is appearing:
Error in ./name.c; invalid pointer: 0x0000000001c18834
My code:
// FUNCAO //
char *nome(text[])
{
int n3 = 0;
int n2 = 0;
char *n = NULL;
while((n2 = getchar()) != '// FUNCAO //
char *nome(text[])
{
int n3 = 0;
int n2 = 0;
char *n = NULL;
while((n2 = getchar()) != '%pre%' && n2 != EOF)
{
n3++;
n = realloc(n, n3*sizeof(char));
if(n == NULL)
{
puts("Erro ao realocar!");
exit(0);
free(n);
}
*(n+(n3-1)) = n2;
}
*(n+n3) = '%pre%';
return n;
}
// USANDO //
int main(void)
{
char *name = nome("Nome:");
while(*name != '%pre%')
printf("%c", *name++);
free(name); // aqui ta o problema, sem o free roda normal agora com o free me da esse erro
}
' && n2 != EOF)
{
n3++;
n = realloc(n, n3*sizeof(char));
if(n == NULL)
{
puts("Erro ao realocar!");
exit(0);
free(n);
}
*(n+(n3-1)) = n2;
}
*(n+n3) = '%pre%';
return n;
}
// USANDO //
int main(void)
{
char *name = nome("Nome:");
while(*name != '%pre%')
printf("%c", *name++);
free(name); // aqui ta o problema, sem o free roda normal agora com o free me da esse erro
}