Alokowanie pamięci dynamicznej C++ i inne

0

Witam. Proszę o pomoc w znalezieniu błedów, program się nie kompiluje. Zadaniem programu jest tworzenie palindromu. Nie mam pojęcia jak wyeliminować te błędy.

#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;

string palindrom (string as)
{
	cout<<"Napis = "<<as<<endl;
	
	unsigned int d=as.length();
	cout<<"Dlugosc napisu = "<<d<<endl;
	
	string *s = new string;
	*s = as;
		
	for (unsigned int i=0; i<2*d; i++)
	{
		if (i>=d)
		{
			*s=*s+*(s+d-i); //	Tutaj chcę dodać dwa napisy	
		}	
	}
	delete s;
	return *s;
}

int main()
{
	char *s = palindrom("Napis"); //tak musi wyglądać wywolanie funkcji
	cout << s; // Powinno wypisać "NapissipaN" 
	getch();
}

 
0

Funkcja zwraca std::string a przypisujesz do char*? Coś nie tak.
Stwórz ten obiekt s jako std::string.
Po co tworzysz obiekt string jako dynamiczny w funkcji? I tak zwracasz przez wartość, przez co masz wyciek pamięci.
Poza tym zły algorytm.
Zobacz do tego tematu: http://4programmers.net/Forum/C_i_C++/185725-program_palindrom_i_problemy_z_nim_zwiazane?hl=palindrom

0

Temat nieaktualny, można usunąć.

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