/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
integer til char
Fra : Kenneth Kristensen


Dato : 22-11-00 11:25

Hej Gruppe

Jeg har et stort tal (10 cifre) i en unsigned long, som jeg vil have
splittet op i enere, tiere, hundreder, tusindere osv.
Findes der en smart måde at gøre det på, udover at finde ud af hvor mange
gange man kan trække 1 mia. fra, hvor mange gange man kan trække 100000000
fra osv.
Kan man evt lave tallet om til en string (array af chars) eller ....?



 
 
N/A (22-11-2000)
Kommentar
Fra : N/A


Dato : 22-11-00 14:26



Bertel Lund Hansen (22-11-2000)
Kommentar
Fra : Bertel Lund Hansen


Dato : 22-11-00 14:26

Martin Moller Pedersen skrev:

>mystring=(char *)malloc(11);

Hvis man har inkluderet stdlib.h, behøver man ikke typecaste (med
det skader ikke).

Bertel
--
http://lundhansen.dk/bertel/
FIDUSO: http://fiduso.dk/

N/A (24-11-2000)
Kommentar
Fra : N/A


Dato : 24-11-00 11:18



N/A (24-11-2000)
Kommentar
Fra : N/A


Dato : 24-11-00 11:18



N/A (24-11-2000)
Kommentar
Fra : N/A


Dato : 24-11-00 11:18



Thorbjørn Ravn Ander~ (24-11-2000)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 24-11-00 11:18

Byrial Jensen wrote:
>
> Thorbjørn Ravn Andersen <thunderbear@bigfoot.com> skrev:
> >Byrial Jensen wrote:
> >
> >> I øvrigt er meget nemmere og hurtigere at erklære et lille array
> >> end at bruge dynamisk hukommelsesallokerimg med malloc():
> >>
> >> char mystring[11];
> >
> >Hovedparten af alle sikkerhedsproblemer med programmer skrevet i C
> >uanset platform, stammer fra at ovenstående er så nemt at lave, og så
> >svært at være sikker på at få gjort stor nok.
>
> Dine betragtninger om faren ved bufferoverløb er helt korrekte,
> men jeg synes ikke at det i sig selv er grund nok til at allokere
> ganske små mængder hukommelse dynamisk (dvs. med malloc() m.fl.).

Man skal være klar over problemet, førend man kan undgå det.

Man skal efter min mening kun bruge statiske variable hvis man kan
garantere at input aldrig kan komme ud over grænsen og lave ravage.

Hvis man skal bruge mange, mange dimser af samme størrelse iøvrigt, kan
der virkelig betale sig at lave et lille lager af brugte dimser og så
genbruge dem inden man kalder malloc, i stedet for ukritisk at kalde
malloc/free for hver enkel. Forskellen kan være forbløffende stor.

--
Thorbjørn

N/A (27-11-2000)
Kommentar
Fra : N/A


Dato : 27-11-00 10:54



Thorbjørn Ravn Ander~ (27-11-2000)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 27-11-00 10:54

Byrial Jensen wrote:

> >Man skal efter min mening kun bruge statiske variable hvis man kan
> >garantere at input aldrig kan komme ud over grænsen og lave ravage.
>
> Ja, jeg er helt enig. Men det gælder ens for alle variabeltyper
> uanset om det er statiske arrays, automatiske arrays eller pegere
> til dynamisk hukommelse, og det er derved ikke et argument for at
> vælge en type frem for en anden.

Forskellen på et statisk array og de øvrige typer du nævner, er at
størrelsen fastsættes for de statiske variable af programmøreren på
oversættelsestidspunktet for ukendte data, og for de resterende på
kørselstidspunktet hvor størrelsen af de data der skal puttes i dem er
kendt.

Det er ikke altid programmøren husker at checke for at den går.

--
Thorbjørn Ravn Andersen "...sound of...Tubular Bells!"
http://bigfoot.com/~thunderbear

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408524
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste