|
|
View previous topic :: View next topic |
Author |
Message |
ismail66c
Joined: 09 Nov 2008 Posts: 6
|
CCS'DE STRUCT KULLANIMI |
Posted: Sun Nov 09, 2008 1:50 pm |
|
|
struct kulanımında hatalarla karşılaşmaktayım, aşagıda bunu açıklıyorum yardımcı olan olursa sevinirim.
struct veri {
char *ad;
int no;
}
struct veri kayit[5];
yukarıda yazılı tanımlamalar main dosyası içerisinde tanımlanamamaktadır,sorunun biri bu. Bu tanımlama main dosyasıo dışında tanımlanıp kayit[0].ad="mehmet" ataması yaptıgımda buişlem gerçeleşmemektedir, ama char oku[]="mehmet" ataması yapıp sonra
kayit[0].ad=oku işlemi dogru olarak çalışmaktadır, buradaki sorunu çözmeye çalışıyorum yardımcı olan olursa sevinirim. |
|
|
ismail66c
Joined: 09 Nov 2008 Posts: 6
|
Re: CCS'DE STRUCT KULLANIMI |
Posted: Sun Nov 09, 2008 1:53 pm |
|
|
ismail66c wrote: | struct kulanımında hatalarla karşılaşmaktayım, aşagıda bunu açıklıyorum yardımcı olan olursa sevinirim.
struct veri {
char *ad;
int no;
};
struct veri kayit[5];
yukarıda yazılı tanımlamalar main dosyası içerisinde tanımlanamamaktadır,sorunun biri bu. Bu tanımlama main dosyası dışında tanımlanıp kayit[0].ad="mehmet" ataması yaptıgımda buişlem gerçekleşmemektedir, ama char oku[]="mehmet" ataması yapıp sonra
kayit[0].ad=oku işlemi dogru olarak çalışmaktadır, buradaki sorunu çözmeye çalışıyorum yardımcı olan olursa sevinirim. |
|
|
|
ckielstra
Joined: 18 Mar 2004 Posts: 3680 Location: The Netherlands
|
|
Posted: Sun Nov 09, 2008 1:53 pm |
|
|
And in English this is .... ?? |
|
|
ismail66c
Joined: 09 Nov 2008 Posts: 6
|
Re: CCS'DE STRUCT KULLANIMI |
Posted: Sun Nov 09, 2008 2:00 pm |
|
|
struct use
Code: |
struct veri {
char *ad;
int no;
};
struct veri kayit[5];
|
This is not working in main file.The other problem kayit[0].ad="mehmet" not working, but char oku[]="mehmet" and then
kayit[0].ad=oku is working, where I make mistake ? |
|
|
Ttelmah Guest
|
|
Posted: Sun Nov 09, 2008 2:31 pm |
|
|
The reason this assignment won't work, is that in CCS, by default, you cannot have pointers to constants. This is in the manual.
The point is that the PIC, has an architecture, where code, and RAM memory spaces are separate. Constants, by default, are in the code space, not the RAM space, and cannot therefore be accessed via a RAM pointer. You need to allocate RAM, and copy the constants to RAM, which is what your 'char' declaration version does.
On the late compilers (last few versions), you can use a ROM declaration, rather than a const declaration (or set the compiler options default to this), _but_ at a cost in terms of code size, and the pointer needs to be a ROM pointer, not a RAM pointer.
There is no reason for it not working in main. You don't show enough to guess what is wrong with this.
Best Wishes |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|