Merhaba,
Tam olarak nasıl ifade edeceğimi bilmiyorum. Konu başlığı da uyduruk oldu ama kodu denerseniz ne demek istediğimi anlayacaksınız!
Sanırım...:)
class DilimTest {
char[] memory;
size_t konum;
string[char[]*] AA;
auto malloc(size_t boyut) {
auto sınır = konum + boyut;
scope(exit) konum += boyut;
return &memory[konum..sınır];
}
}
import std.stdio;
void main() {
with( new DilimTest() ) {
memory = "one" /* 1 [0..3] */
"two" /* 2 [3..6] */
"three" /* 3 [5..$] */
.dup;
//*/// v----- TEST 1:
AA[&memory[0..3]] = "bir";
AA[&memory[3..6]] = "iki";
AA[&memory[6..$]] = "üç";
/*/// v----- TEST 2:
AA[malloc(3)] = "bir";
AA[malloc(3)] = "iki";
AA[malloc(5)] = "üç";
//*/
AA.writeln; /* print out: (TEST 1)
[7FFF48A052D0:"bir", 7FFF48A052F0:"iki", 7FFF48A05320:"üç"]*/
foreach(ref dilim; AA.keys) {
writef("%s: %s ", dilim, *dilim);
} /* print out: (TEST 1)
7FFF48A052D0: one 7FFF48A052F0: two 7FFF48A05320: three */
writeln;
}
}/* print out: (TEST 2)
[7FFF651186B0:"üç"]
7FFF651186B0: �
*/
İkinci test için 23. satırdaki slash'lardan birini kaldırın...
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]