C Pointer a değişken atama

Başlatan esensoy, 28 Aralık 2013, 00:36:26

esensoy

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
En tehlikeli an "zafer" anıdır.

picusta

#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);
}