Problem z przydzielaniem pamięci w C

0

Witam. Nie umiem zbytnio zrozumieć komunikatów mojego IDE (Visual C++) dotyczących błędów pamięci. Program kompiluje się, działa ale i uruchamia się z błędem. Dodam, że mam duże braki wiedzy jeśli chodzi o używanie funkcji malloc i ogólnie język C. Proszę o wskazanie mi błędu i wyjaśnienie dlaczego jest źle.

/* Zadanie 1: Napisac w jezyku C funkcje przyjmujaca dwa lancuchy tekstowe, 
   alokujaca pamiec i zwracajaca połączone łańcuchy.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char *polaczLancuchy(char *string1, char *string2, int rozmiar){
	char *nowy_string = (char *) malloc(sizeof(char) * rozmiar);
	if(nowy_string==0) printf("Nie udalo sie przydzielic pamieci.\n");

	nowy_string = strcat(string1, string2);
	
	
	return nowy_string;
}

int main (){
	
	char string1[6] = "abcde";
	char string2[6] = "fghij";
	int size = 11;
	
	char *wynik = polaczLancuchy(string1, string2, size);
	printf ("Polaczone lancuchy znakowe: %s\n", wynik);
	free(wynik);

	system ("PAUSE");
	return 0;
}
1

Tu jest blad:

nowy_string = strcat(string1, string2);

Powinno byc:

strcpy(nowy_string, string1);
strcat(nowy_string, string2);
0

Wielkie dzięki za pomoc.
Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1