04. maj 2004 - 12:51Der er
19 kommentarer og 2 løsninger
C programmering med strenge (embedded controller)
Vi (min studiegruppe) sidder med en TI MSP430 Embedded Controllor (altså ikke en PC!), og forsøger noget med strenge.
Meningen er at der skal sende nogle karakter-sekvenser over serial kommunikation til en PC. På PC har vi noget java software som forventer disse sekvenser.
Jeg har brug for at tilføje flere "0" foran en streng. Java-softwaren forventer 5 tal men eksempelvis tallet(heltal) er kun 2 cifre/tegn langt.
Vi skal altså have påklistret (5 - tal_længde) antal nuller foran tallet (til venstre for). Hvordan gøres dette? På PC kan jeg skrive:
printf("%05d", tal); //Virker som jeg vil have det!
Men kompileren til MSP'en kan ikke forstå dette :)
Jeg kunne godt tænke mig noget kode som kunne afhjælpe os(mig) men ingen af os er særlige C-nørder...selv om vi burde være det :)
Den metode fungerer bare perfekt! Men kan man lave en med dynamiske arrays? Jeg søger en måde at lave samme metode, blot med fleksibilitet for værdien for CIFRE. Måske en procedure som modtager tal og antal_cifre som argumenter? Er det noget du kan bikse sammen?
Sorry men vil det kode kunne forsvares i en ren C verden (ingen C++)? Uanset om kompileren æder det, så er vores eksisterende kode bygget omkring ren C.
Ok - det fungerer bare det der! Også med malloc()...!
Hvad jeg gør sådan her:
printf("%s", IntToStr(num, minsize));
Så er jeg fri for at bruge free() ikke? Bliver værdien i hukommelsesområdet ikke kopieret til printf()'s scope og derefter "befriet" efter printf() er færdig??
Det jeg nu har gjort er bruge printf() inde i min funktion. Så allokeres og deallokeres bufferen inde i funktionen... Så er memoryleaks vel også ude af billedet?
Mvh Intel4004
Takker for de mange gode forslag - i har faktisk fået mig til at åbne min splinter nye C-bog :)
arne_v - jeg reagerede såmænd også på udsagnet om, at der tilsyneladende kun er 2KB til rådighed :-) I de små størrelser er der sjældent plads til den helt store dynamik, når det er relativt små typer der arbejdes med (hellere allokere 11 bytes up front end at spilde bytes på fancy håndtering af dynamiske størrelser ... :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.