[ LUGOS ] char* + char*

Metod Kozelj metod.kozelj na rzs-hm.si
Pon Feb 2 12:44:18 CET 1998


Howdy!

On Sun, 1 Feb 1998, polz wrote:

> Nasel sem napako ..
> Nekje v programu, pred sestevanjem stringov, sem imel nekaj takega:
> 
> p = "blabla\n juhuhuhu";
> 
> To je povzrocilo, da je compiler alociral char[n] namesto char*, kar pa je 
> potem sesulo program( za dodajanje ni bilo prostora).

V resnici je bilo se malo drugace: zgornji stavek p-ju priredi NASLOV
konstantnega niza, za katerega prevajalnik alocira le tocno doloceno
kolicino pomnilnika. Ce si morda kje naprej naredil

  strcat (p, "My new string");

je funkcija poizkusala dodati novi niz k staremu KONSTANTNEMU nizu (kar
seveda ne gre).

Torej bi bila tvoja vrstica 

  p = "blabla\n juhuhuhu";

pravilno zapisana

  strcpy (p, "blabla\n juhuhuhu");

(prej pa moras seveda alocirati pomnilnik za p).

Peace!
  Mkx




Dodatne informacije o seznamu Starilist