Karena "D0D98021" dan "Arista" merupakan literal
string yang memiliki length yang constant maka
statement untuk mengassigment value nya tidak bisa
kalau mau mengassignment dengan cara seperti itu harus
memakai Pointer.
* Dengan Array
struct SISWA {
char NIS[9];
char Nama[20];
JENIS_KELAMIN gender;
}A;
strcpy(&A.NIS[0],"D0D98021");
strcpy(&A.Nama[0],"Arista");
A.gender = Wanita;
- Dengan Ponter
struct SISWA {
* char NIS;
char Nama[20];
JENIS_KELAMIN gender;
}A;
strcpy(&A.NIS[0],"D0D98021");
strcpy(&A.Nama[0],"Arista");
A.gender = Wanita;
Informasi Tambahan :
Untuk menampung nilai "D0D98021" (Length 8) dengan
char NIS[8] tidak tepat karena untuk membuat tempat
penyimpanan untuk sebuah string haruslah
Length Array = Length Karekter + 1. Kenapa harus
ditambah 1 karena itu untuk menampung karakter
terakhir '\0'.
Array Index selalu dimulai dari 0
char NIS[9];
NIS [0]='D'
NIS [1]='0'
NIS [2]='D'
NIS [3]='9'
NIS [4]='8'
NIS [5]='0'
NIS [6]='2'
NIS [7]='1'
NIS [8]='\0'
struct SISWA {
char NIS[9];
char Nama[20];
JENIS_KELAMIN gender;
}A;
strcpy(&A.NIS[0],"D0D98021");
strcpy(&A.Nama[0],"Arista");
A.gender = Wanita;
--- Yanu Widodo <[EMAIL PROTECTED]> wrote:
> Assalamualaikum
> apa khabar men-teman ?
>
> gini nih, saya lagi belajar c++
> waktu saya coba ngompile source code berikut :
>
> 1 #include <iostream>
> 2
> 3 using namespace std;
> 4
> 5 enum JENIS_KELAMIN { Pria, Wanita };
> 6 int main() {
> 7
> 8 struct SISWA {
> 9 char NIS[8];
> 10 char Nama[20];
> 11 JENIS_KELAMIN gender;
> 12 } A;
> 13
> 14 A.NIS = "D0D98021";
> 15 A.Nama = "Arista";
> 16 A.gender = Wanita;
> 17
> 18 cout<<"NIS : "<<A.NIS<<endl;
> 19 cout<<"Nama : "<<A.Nama<<endl;
> 20 cout<<"Gender : "<<A.gender<<endl;
> 21
> 22 return 0;
> 23 }
>
>
> kok ada error spt berikut yak?
>
> # g++ test.cpp -o test
> test.cpp: In function `int main()':
> test.cpp:14: incompatible types in assignment of
> `const char[9]' to `char[8]'
> test.cpp:15: incompatible types in assignment of
> `const char[7]' to `char[20]'
>
>
> saya ngompile make
>
> # g++ --version
> g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
> Copyright (C) 2002 Free Software Foundation, Inc.
> This is free software; see the source for copying
> conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS
> FOR A PARTICULAR PURPOSE.
>
>
> padahal syntaxnya udah sesuai referensi
> mohon pencerahan.
>
>
>
> salam,
>
> yanu
>
> --
> Berhenti langganan:
> [EMAIL PROTECTED]
> Arsip dan info: http://linux.or.id/milis
>
>
Send instant messages to your online friends http://uk.messenger.yahoo.com
--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis