Re: [programming] mengakses array melalui pointer ke struktur
At 4/3/2001 04:32 AM, you wrote: Linux, Windows, dan hampir semua OS moderen yg. lain memang bakalan memfree memory ketika suatu proses exit. tepatnya mungkin: "semua OS yang tidak amat primitif". DOS aja (and I bet CP/M, Amiga, etc) begini. cleaning up process itu tugas yang basic banget. Tapi nggak semua OS kelakuannya kayak gini. Seinget saya bbr. OS (terutama yg. embedded/realtime OS) enggak, soalnya OS-OS itu nggak mengenal konsep proses. Hm, menarik juga yah. -- sh jadi pada nit-picking semua nih :p Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
On Sat, 31 Mar 2001, david goo wrote: apakah possible untuk mengakses (memanipulasi array) melalui pointer ke struktur? possible struct struktur *coba; coba-angka[1]=100; disini terjadi error dan core dump gimana sih solusinya?? memori untuk coba udah dialokasikan belum? misalnya : coba = (struct struktur *)malloc(sizeof(struct struktur)) -- Salam Yohanes http://www.negeriimpian.com Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
--- Terima kasih untuk Ibunda-ku tercinta atas segala yang telah engkau perjuangkan untukku dirman : quick info : finger [EMAIL PROTECTED] e-mail : [EMAIL PROTECTED] homepage : http://malabar.if.itb.ac.id/~m197047 --- On Sat, 31 Mar 2001, david goo wrote: ini ada lagi pertanyaan mengenai pemrograman C. apakah possible untuk mengakses (memanipulasi array) melalui pointer ke struktur? Tentu donk . mis: struct struktur { int angka[10]; } struct struktur *coba; coba-angka[1]=100; disini terjadi error dan core dump gimana sih solusinya?? Jelas aja error ... Kapan alokasi--nya ??? /* solusi.c */ #include stdio.h #include stdlib.h int main(){ /* Kamus */ struct struktur{ int angka[10]; }; struct struktur *coba; int i; /* Algoritma */ coba = (struct struktur*)malloc(sizeof(struct struktur)); /* --- ini lho yang kurang */ for(i=0;i10;i++){ coba-angka[i] = (i+1)*10; } for(i=0;i10;i++){ printf("%d ",coba-angka[i]); } printf("\n"); return(0); } Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
--- Terima kasih untuk Ibunda-ku tercinta atas segala yang telah engkau perjuangkan untukku dirman : quick info : finger [EMAIL PROTECTED] e-mail : [EMAIL PROTECTED] homepage : http://malabar.if.itb.ac.id/~m197047 --- On Sat, 31 Mar 2001, david goo wrote: ini ada lagi pertanyaan mengenai pemrograman C. apakah possible untuk mengakses (memanipulasi array) melalui pointer ke struktur? mis: struct struktur { int angka[10]; } struct struktur *coba; coba-angka[1]=100; disini terjadi error dan core dump gimana sih solusinya?? Tambahan ... Bila menggunakan pointer ke suatu struktur, ada baik--nya untuk mengecek apakah sudah melakukan alokasi #include stdio.h #include stdlib.h int main(){ /* Kamus */ struct struktur{ int x; int y; }; struct struktur *coba; /* Algoritma */ coba = (struct struktur*)malloc(sizeof(struct struktur)); /* Bila baris di atas tidak ada, maka akan ada pesan error ** seperti pada program saudara */ coba-x = 100; coba-y = 10; printf("Nilai x : %d \n",coba-x); printf("Nilai y : %d \n",coba-y); return(0); } Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
Quoting david goo [EMAIL PROTECTED]: pertama-tama makasih kepada Hadi PS karena telah menjawab pertanyaan saya! Thanks :) ini ada lagi pertanyaan mengenai pemrograman C. apakah possible untuk mengakses (memanipulasi array) melalui pointer ke struktur? mis: struct struktur { int angka[10]; } struct struktur *coba; coba-angka[1]=100; disini terjadi error dan core dump soalnya anda baru bikin pointer ke struct struktur, dan belum bikin struktur-nya beneran, kalo tetep pake pointer musti di-malloc dulu, atau langsung bikin aja tanpa pointer. yang pake pointer: struct struktur *coba = (struct struktur *)malloc(sizeof(struct struktur)); coba-angka[1] = 100; langsung tanpa pointer: struct struktur coba; coba.angka[1] = 100; semoga bisa membantu. Hadi PS [EMAIL PROTECTED] -- Visit Ukhuwah.or.id at http://www.ukhuwah.or.id The Coolest Islamic Portal in Indonesia Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
jangan lupa untuk check pointer yg. di-return-ed oleh malloc(), apakah NULl atau enggak, dan untuk mem-free() pointer tsb. sebelum program exit.. :-) int main() { ... coba = malloc(sizeof(struct struktur)); if (coba == NULL) return 1; ... free(coba); return 0 } -- cheers, Bennylp Muhammad Sudirman wrote: Tambahan ... Bila menggunakan pointer ke suatu struktur, ada baik--nya untuk mengecek apakah sudah melakukan alokasi #include stdio.h #include stdlib.h int main(){ /* Kamus */ struct struktur{ int x; int y; }; struct struktur *coba; /* Algoritma */ coba = (struct struktur*)malloc(sizeof(struct struktur)); /* Bila baris di atas tidak ada, maka akan ada pesan error ** seperti pada program saudara */ coba-x = 100; coba-y = 10; printf("Nilai x : %d \n",coba-x); printf("Nilai y : %d \n",coba-y); return(0); } Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
At 11:13 AM 4/2/01, Muhammad Sudirman wrote: Tambahan ... Bila menggunakan pointer ke suatu struktur, ada baik--nya untuk mengecek apakah sudah melakukan alokasi Tambahan lagi... bila anda memakai C++, ada baiknya cobalah sesekali memprogram pakai STL. Uenak sekali bikin manipulasi list yang ajaib2, udah gak usah pusing2... sudah ada semua tinggal pake... Gantinya jedotin kepala ke tembok karena masalah template bersarang (percayalah, kalau pake STL pasti bakal sering ketemu masalah ini... apalagi kalau compiler-nya MSVC) Dasa - ICQ:10195313 We must fight as a race for everything that makes for a better country and a better world. We are dreaming idiots and trusting fools to do anything less. - Ralph Bunche Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
On 03-Apr-2001, Steven Haryanto wrote: At 4/2/2001 06:55 PM, you wrote: jangan lupa untuk check pointer yg. di-return-ed oleh malloc(), apakah NULl atau enggak, dan untuk mem-free() pointer tsb. sebelum program exit.. :-) kayaknya kalo sebelum proses berakhir gak usah boleh ya? biar irit ngetik :p Setuju. Pas exit kan semua memory (stack+heap) di-free-kan otomatis sama MM-nya kernel (bener ya?), jadi kalo di-free() pas sebelum exit ya kayaknya redundant. Biasanya org panggil free() kalo masih ada yg mau dikerjakan (belum exit) tapi juga mau ngirit memory dg membebaskan memory yg tadinya dialloc tapi sudah ndak dipake lagi. Ini terutama berguna utk long-running program seperti daemons. Actually Netscape should use more of it, too :) Sorry kalo nit-picking :) Ronny Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Re: [programming] mengakses array melalui pointer ke struktur
On Mon, 02 Apr 2001, you wrote: Setuju. Pas exit kan semua memory (stack+heap) di-free-kan otomatis sama MM-nya kernel (bener ya?), jadi kalo di-free() pas sebelum exit ya kayaknya redundant. sebenernya untuk kasus ini nggak papa sih, tapi "for the sake of tutorial", sebaiknya jangan ah.. Linux, Windows, dan hampir semua OS moderen yg. lain memang bakalan memfree memory ketika suatu proses exit. Tapi nggak semua OS kelakuannya kayak gini. Seinget saya bbr. OS (terutama yg. embedded/realtime OS) enggak, soalnya OS-OS itu nggak mengenal konsep proses. Jadi _mungkin_ untuk OS-OS ini, memory bakalan nggantung kalo nggak di-free. Sori nggak bisa ngasi tau lebih spesifik, soalnya emang nggak terlalu pengalaman di bidang ini... Trus lagi ada bbr. jenis memory yg. nggak otomatis di-free kalau program exit. Contohnya System V shared memory (man shmget). Kalau nggak salah sih shared memory itu bakalan dijaga terus di kernel meskipun proses exit(), sampai dia manually di free (man shmctl, man ipcs, man ipcrm) atau kernelnya di reboot. Jadi nggak semua memory bakalan di free kalau proses exit(). Satu lagi, nanti kalau program membesar, pasti akan ada bug, dan salah satu bug yg. sering muncul adalah memory leak. Kalau udah gitu, yg. kita lakukan adalah men-trace memory leak itu dengan tools (misalnya Rational Purify, atau mbikin sendiri juga bisa sih). Nah, dengan adanya malloc() yg. secara sengaja nggak di free seperti itu, bakalan ngrusak output dari trace itu, soalnya ntar kita harus mbedain mana memory yg. sengaja nggak di free, dan mana yg. merupakan bug. Biasanya org panggil free() kalo masih ada yg mau dikerjakan (belum exit) tapi juga mau ngirit memory dg membebaskan memory yg tadinya dialloc tapi sudah ndak dipake lagi. Ini terutama berguna utk long-running program seperti daemons. Actually Netscape should use more of it, too :) setuju (untuk kasus umum lho). Sorry kalo nit-picking :) saya lebih lagi kayaknya.. :-) Ronny Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3 Pengelola dapat dihubungi lewat [EMAIL PROTECTED]