Compiler tidak melakukan array bound checking pada waktu suatu function dipanggil. Lint mungkin bisa, but not compiler.
One explanation, lucky! char awal[3] menyimpan data-nya di BSS, sedangkan char akhir[8] di DS, keduanya tidak berhubungan. Lagipula, seandainya memang kedua-nya ada di segment memory yang sama, strcpy() akan menambahkan '\0', yang basically menghapus WXZY dari printf()= . KOkon. On 5/3/06, Me Junk <[EMAIL PROTECTED]> wrote:
Program1: ... char awal[3] = "ABCDE"; char akhir[8] = "WXZY"; int main () { printf("awal: %s\nakhir: %s\n", awal, akhir); return (0); } Program2: ... char awal[3]; char akhir[8] = "WXZY"; int main () { strcpy(awal, "ABCDE"); printf("awal: %s\nakhir: %s\n", awal, akhir); return (0); } Di compile dgn: gcc -Wall -ostr1 str1.c Mengapa pada program2 gcc tdk memberikan warning dan hasilnya benar? awal: ABCDE dan bukan ABCWXZY
-- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis