Witam. Tak jak w tytule robię zadanie 8.4 z książki Język C++ Szkoła programowania, program się kompiluje ale dochodzi do błędu w trakcie jego działania. Podejrzewam, a nawet jestem prawie pewny, że błąd leży w funkcji set_str tylko nie mam pojęcia gdzie.
#include <iostream>
#include <cstring>
using namespace std;
struct stringy
{
char *str;
int ct;
};
void set_str(stringy &smth, char * str);
void show(stringy smth,int n=1);
void show(const char *str, int n=1);
int main()
{
stringy beany;
char testing[] = "Rzeczywistosc to juz nie to, co kiedys.";
set_str(beany,testing);
show(beany);
show(beany, 2);
testing[0] = 'D';
testing[1] = 'u';
show(testing);
show(testing,3 );
show("Gotowe!");
return 0;
}
void set_str(stringy &smth, char * str)
{
static int n=strlen(str);
char *p=new char[n+1];//alokacja pamieci na wynik sprawdzania
strcpy(smth.str,p);//ustawienie pola str struktury beany tak by wskazywala nowy blok
strcpy(p,str);//kopiowanie testing do nowego bloku
smth.ct=strlen(str);//ustawienie pola ct zmiennej beany
}
void show(stringy smth,int n)
{
for(int i=0;i<n;i++)
cout<<smth.str<<endl;
}
void show(const char *str, int n)
{
for(int i=0;i<n;i++)
cout<<str<<endl;
}