• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wskaźnik na łańcuch

VPS Starter Arubacloud
0 głosów
229 wizyt
pytanie zadane 18 września 2017 w C i C++ przez Sic Dyskutant (8,510 p.)
edycja 18 września 2017 przez Patrycjerz

Witam 

Podczas zabawy z łańcuchami znakowymi, podczas alokacji pamięci natchnąłem się na alokacje dynamiczną za pomocą strlen(), jednak mój kompilator odrzucał to i występował błąd.

char fly[10] = "latajacy";
char *pp;  //specjalnie nie został zainicjalizowany.

pp = fly;
std::cout << "adres pp, " << (int *)fly << "\nadres fly, " << (int*) pp << std::endl; //poprawne

//alokacja nowego miejsca w pamięci dla wskaźnika pp

pp = new char [10];  //taka alokacja nie powoduje błędów.
strcpy(pp,fly);
std::cout << "alokacja nowego w miejsca pamieci dla pp	\n\tadres pp, " 
			  << (int *)fly << "\n\tadres fly, " << (int *) pp << std::endl << std::endl

//jednak taki zapis powoduje błąd kompilatora, jednak przed wystąpieniem błędu program włącza się i wyświetla poprawną alokacje.

pp = new char (strlen(fly));  //
strcpy(pp,fly);
std::cout << "alokacja nowego w miejsca pamieci dla pp	\n\tadres pp, " 
			  << (int *)fly << "\n\tadres fly, " << (int *) pp << std::endl << std::endl

 

1 odpowiedź

+1 głos
odpowiedź 18 września 2017 przez Sic Dyskutant (8,510 p.)
powinno być :

pp = new char [strlen(fly)] ;

Podobne pytania

0 głosów
2 odpowiedzi 1,275 wizyt
pytanie zadane 5 stycznia 2018 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
2 odpowiedzi 946 wizyt
pytanie zadane 9 lutego 2017 w C i C++ przez robRoy Użytkownik (970 p.)
0 głosów
2 odpowiedzi 912 wizyt
pytanie zadane 10 listopada 2019 w C i C++ przez CleaverMan Nowicjusz (140 p.)

93,005 zapytań

141,971 odpowiedzi

321,251 komentarzy

62,343 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...