Zamiana licz rzymskich na arabskie problem

0

Znalazłem taki fajny programik ale nie do konća rozmumiem tą linijkę
char* LiczbaR = (char*)malloc(255 * sizeof(char));
Oto cały program

<#include <stdio.h>

#include <stdlib.h>

unsigned int TabA[] = {1000, 500, 100, 50, 10, 5, 1};

unsigned int TabAP[] = {100, 100, 10, 10, 1, 1};

unsigned char TabR[] = {'M', 'D', 'C', 'L', 'X', 'V', 'I'};

unsigned char TabRP[] = {'C', 'C', 'X', 'X', 'I', 'I'};

unsigned char* ArabToRome(unsigned int LiczbaA)

{

char* LiczbaR = (char*)malloc(255 * sizeof(char));

int i = 0,

   j = 0;     

while(LiczbaA)

{

   if(LiczbaA >= TabA[i])

   {

       

       LiczbaA -= TabA[i];

       

       LiczbaR[j++] = TabR[i];

   }

  

   else if(LiczbaA >= TabA[i] - TabAP[i])

   {

       

       LiczbaA -= TabA[i] - TabAP[i];

    

       LiczbaR[j++] = TabRP[i];

       LiczbaR[j++] = TabR[i];

   }

  

   else

       i++;

}

return LiczbaR;

}

int main()

{

int LiczbaA;

scanf("%d", &LiczbaA);

printf("%sn", ArabToRome(LiczbaA));

system("pause");

return 0;

}

1

To jest proszenie się o kłopoty z wyciekiem pamięci na dodatek bezsensownie zrealizowane, bo wystarczyło by tak: char *LiczbaR=(char*)malloc(255);
Zamień to badziewie na: static char LiczbaR[255];

1 użytkowników online, w tym zalogowanych: 0, gości: 1