Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => Konuyu başlatan: esensoy - 28 Aralık 2013, 00:36:26

Başlık: C Pointer a değişken atama
Gönderen: esensoy - 28 Aralık 2013, 00:36:26
Selam,
typedef struct abc
{
   char *text;
} abc;

şeklinde tanımlanmış bir struct var,
abc x[5]; ile değişkeni tanımlıyorum,
for (i=0;i<10,i++){
   sprintf(x[i].text,"%d %d",i,i+1);
}

for döngüsü ile değişkene iki ayrı text i birleştirip atmam gerekiyor,
struct yapısını değiştiremiyorum, dolayısıyla x.text pointer olmak zorunda,
kodu çalıştırdığımda bütün x.text değerleri en son değeri gösteriyor, yani "9 10" oluyor,
sıralı bir şekilde göstermesini sağlayacak bir yol var mı? yani;
x[0].text = 0 1
x[1].text = 1 2
x[2].text = 2 3
.
.
.
.
x[9].text = 9 10
Başlık: Ynt: C Pointer a değişken atama
Gönderen: picusta - 28 Aralık 2013, 02:08:16

#define DIZIN_UZUNLUK  10
#define TEXT_UZUNLUK  8

char Buffer[DIZIN_UZUNLUK *TEXT_UZUNLUK ];

abc x[DIZIN_UZUNLUK ];

// Alloc
for (i=0;i<DIZIN_UZUNLUK ;i++){
    x[i].text = &Buffer[i*TEXT_UZUNLUK ];
}

// Print
for (i=0;i<DIZIN_UZUNLUK ;i++){
   sprintf(x[i].text,"%d %d",i,i+1);
}