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, botów: 0