Witam, mam problem z napisaniem własnej funkcji strcat z biblioteki string.h, z dynamiczną alokacją pamięci. Rozumiem swój błąd nadpisuję zaalokowaną pamięć, próbowałem wielu sposobów, parę jest w komentarzach, ale cały czas robię to samo, proszę o pomoc.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *polacz(char *n1,const char *n2)
{
int i,j;
char *nap1=(char*)malloc((strlen(n1)+strlen(n2)+1)*sizeof(char));
for(i=0; nap1[i] != '\0'; i++);
for(j=0; n2[j] != '\0'; j++)
nap1[i+j]=n2[j];
nap1[i+j]='\0';
return nap1;
}
int main()
{
char *n1="ala ma", *n2=" kota";
//char *nap1, *nap2;
//nap1=(char*)malloc((strlen(n1)+strlen(n2))*sizeof(char));
//nap2=(char*)malloc(strlen(n2)*sizeof(char));
// nap1=polacz(nap1,n2);
puts(polacz(n1,n2));
// free(nap1);
// free(nap2);
return 0;
}