Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: MCansız - 02 Mart 2022, 17:53:18

Başlık: C double pointer array işlemi hk.
Gönderen: MCansız - 02 Mart 2022, 17:53:18
Merhabalar

Stm32 ile projemde eeproma string olarak yazı eklemem  gerekli ve hali hazırda kullanmış olduğum yapım var.

   char *_TXT_R_1[]={"ali"};
   char *_TXT_R_2[]={"veli"};
   char *_TXT_R_3[]={"selami"};
   char *_TXT_R_4[]={"1234"};
   
   char **_TXT_R_ARRAY[4] =
    {
    _TXT_R_1,
_TXT_R_2,
_TXT_R_3,
_TXT_R_4
   };
   printf("%s" ,_TXT_R_ARRAY[0][0] ); // ali
           printf("%s" ,_TXT_R_ARRAY[1][0] ); // veli
   printf("%s" ,_TXT_R_ARRAY[2][0] ); // selami
           printf("%s" ,_TXT_R_ARRAY[3][0] ); // 1234

yukarıdaki kodda bir katar yapım var. Yapmak istediğim _TXT_R_ARRAY değişkeni üzerinden epromdan okuduğum yeni isimleri değiştirmek


(*_TXT_R_ARRAY)[0]= "yeni";

şu şeklide _TXT_R_1 içeriği değişiyor ama

(*_TXT_R_ARRAY)[1]= "yeni";

şeklinde _TXT_R_2 içeriğini değiştiremiyorum bunun için calloc kullandım ama başaramadım. Nasıl bir yol izlemeliyim.

Teşekkür ederim.

Başlık: Ynt: C double pointer array işlemi hk.
Gönderen: mehmet - 02 Mart 2022, 18:16:46
strcpy, strcat fonksiyonlarını deneyiniz.
Başlık: Ynt: C double pointer array işlemi hk.
Gönderen: ahmet35 - 02 Mart 2022, 18:54:09
char *_TXT_R_1[]={"ali"} değişkeni STM32' nin flash yani ROM bölgesinde olduğu için içeriğini değiştiremezsiniz.

@mehmet hocamın dediği gibi strcpy fonksiyonu kullanın.

char _TXT_R_1[16]; gibi RAM' de bulunan bir dizi değişkeni oluşturup strcpy fonksiyonu ile "ali" string değerini bu dizi değişkenine kopyalayın.
Daha sonra istediğiniz gibi üzerinde işlem yapabilirsiniz.

String dizilerinin son karakterini '\0' karakteri yaptığınızdan emin olun.
ali\0 -> ahmet\0
Başlık: Ynt: C double pointer array işlemi hk.
Gönderen: kimlenbu - 03 Mart 2022, 10:28:47
karakter uzunluklarınız farklı, ya uzunluklar eşit olsun ya da söyledikleri gibi son karakteri kendiniz 0x00 olarak değiştirin.
Başlık: Ynt: C double pointer array işlemi hk.
Gönderen: hasankara - 04 Mart 2022, 13:40:54
Yazıların sadece yerleri değiştirilmek isteniyorsa string kütüphanesi kullanılmak zorunda değil ilk yaptığınız gibi, stringleri rom a gömüp sadece işaretçilerinin(pointer) yerleri değiştirilebilir. ilkokul fiş defterleri gibi yazılar kağıtlarda sabit ve kağıtların yerlerini değiştirip anlamlandırmak gibi.