Thread overview
August 02, 2013

Anladığım kadarıyla oluşturulan structlar stack üzerinde oluşturuluyor ve stack oldukça sınırlı ve benim bu structları heap üzerinde oluşturmam gerekiyor. Bunun için ne yapmak gerekiyor?

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 02, 2013

Anladığım kadarıyla gc.malloc yapmak verinin heap üzerinde oluşturulmasını sağlıyor :)

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 02, 2013
  • new ile heap'te oluşturulabilir

Ancak, o nesnenin sonlandırıcısını destroy() ile açıkça işletmek programcının görevi haline geliyor.

  • emplace ile istediğimiz herhangi bir yerde oluşturulabilir

Aşağıdaki program bu yöntemlerin ikisini de kullanıyor:

import std.conv;
import std.stdio;

struct S
{
   int i;
   string s;
}

void main()
{
   auto p0 = new S(1, "abc");
   writeln(*p0);

   ubyte[1000] yer;

   auto p1 = emplace!S(yer, 42, "merhaba");
   writeln(*p1);
}

Bunlar şu bölümde geçiyor:

http://ddili.org/ders/d/bellek_yonetimi.html

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]