[02:04] helo [02:23] excalibr: helo [03:18] fairuz, bila kita assign string ke char pointer eg char *foo = "bar" [03:18] apa yg berlaku secara teknikalnya [03:19] /poke fairuz1 [03:19] excalibr: oh sorry [03:20] >fairuz, bila kita assign string ke char pointer eg char *foo = "bar" [03:20] maksudnya ko akan ada dalam meory dua benda [03:20] >apa yg berlaku secara teknikalnya [03:20] *memory [03:21] apa bza kalau assign guna array char foo[] = "bar" [03:21] satu ruang direserve untuk simpan "bar", contoh string ni perlukan 4 bytes [03:21] jadi tiap2 byte ni ada address dia [03:22] dalm kes pertama, foo akan ada nilai address element pertama string ni, dalam kes ni address huruf b [03:23] ok..pointer ke address "bar" dlm memory.. [03:23] dalam kes kedua pun sama, foo akan point to the first character [03:23] beza dia kat mana "bar" tu disimpan [03:24] seingat aku kalau ko pakai char*foo, "bar" tu akan disimpan kat read only memory [03:24] so takleh nak tukar [03:24] kalau ko pakai char foo[], boleh tuka. e.g. foo[0] = 'T' [03:27] excalibr: ok ke [03:27] :p [03:29] hmm ok :D lagi satu, kalau aku nak reasssign value char pointer tu ke char array..boleh reassign terus ke? [03:30] char *foo = "bar"; [03:30] char oof[] = "bla"; [03:30] char *foo = oof; [03:30] ^ ok ke buat camni? [03:30] boleh sebab foo tu bukan const pointer [03:31] so dia boleh nak assign pegi address lain [03:31] Kira nak senang, ko kena ingat pointer ni just simpan address [03:31] pastu apa jadi dgn original string yg foo tu point masa mula2? [03:32] http://ideone.com/m3XIOC [03:32] tengok ni [03:32] tu takde sapa point kat dia la [03:32] dai duk sorang2 la dalam memory tu, kesian dia [03:32] *dia [03:33] hahaa [03:33] kalau dari segi technical dia [03:33] kalau ko declare benda mcm int i ke [03:34] char foo[] = "bar" ke [03:34] semua benda ni scope dia auto tak salah aku [03:34] jadi dia letak benda ni kat stack scope tu [03:34] tak perlu erase ke string tadi tu? [03:34] so contoh ko declare kat dalam function, abis function, benda ni semua free la [03:34] tak perlu kalau auto [03:34] *scope auto [03:35] kalau ko buat char *foo, scope dia static [03:35] takkan hilang sampai program habis [03:36] oh camtu [03:36] benda2 ni static, dia "embedded" dalam data segment program ko tu [03:37] Kalau static data ko byk, besar la program ko [03:37] kalau auto storage tu, time ko run tu dia reserve memory [03:37] besar dari segi mem usage? [03:38] bukan mem usage, program ko tu yg besar [03:38] physically on disk [03:38] mem usage ni utk auto storage tu [03:39] contoh mcm ni [03:39] ko ada variable static 10KB, dengan ko ada declare satu array besar 20KB dalam function X [03:40] program ko tu, saiz dia termasuk dengan 10KB variable static tu [03:40] kira start2 je program ko, variable static tu dah wujud [03:40] array besar tu tak wujud lagi, selagi ko tak masuk dalam function X [03:41] X tu tak kesah la function main ke, function buat sendiri ke [03:44] uhhm.. [03:46] static var ni termasuk la constant kan? [03:47] mmg constant pun static var ni [03:47] read only [03:47] eh yg char pointer tadi tu..kdg2 aku tengok org tulis char* foo [03:47] apa beza dgn char *foo [03:49] sama je [03:51] kalau setakat char * tu takpe lagi, kalau dah start main function pointer, kena hati2 je la sikit [03:51] contoh function pointer void (*foo)(void) [03:52] penting kurungan () tu sebab nak kata benda tu function pointer [03:54] ko kenapa tiba2 belaja programming plak ni :D [03:59] :D [04:01] konsep senang mcm ni je, saiz program = saiz code section + data section [04:01] data section dalam kes ni global dengan static variable [04:01] global tu, benda2 yang ko declare kat luar main [04:02] benda2 yang ko delare dalam main plak, atau dalam mana2 function, takkan ada dalam program ko [04:02] unless time runtime, dia akan masuk stack [04:02] benda ni la yang aku panggil auto variable tadi [04:03] sebab bila dia jumpa penutup function ( } ), variable2 ni semua akan hilang === fairuz1 is now known as fairuz [04:16] TIL data section [04:16] :) [04:31] :D [06:19] mcm mana org buat multi patch dlm satu patch file [06:19] buat patch file satu-satu lepas tu concancate ke satu file? [06:24] multipatch tu ape maksud ko excalibr [06:24] patch yg meilibat byk file ke ape [06:25] ye [06:37] patch biasa pun boleh melibatkan byk file [06:38] macam git commit biasa [06:38] satu commit nak ada diff utk 100 files pun boleh [06:38] excalibr: ^ [06:58] /names [06:58] sorry fairuz [06:58] silap taip [07:13] ? [07:13] excalibr: gigih buat C ke ape keke [07:43] wahaha [07:51] aku tengah pening godek spnego Kerberos ni [08:53] hi