Hej eksperter. Jeg er ved at skrive et program i C, og jeg skal ha' indlæst nogle linjer fra en .txt fil og sorteret dem. Jeg har prøvet at oprette et to-dimensionelt array med plads til 100 karakterer for hver linje, men når jeg printf'er indholdet får jeg en masse tegn for enden af filen (Jeg skifter videre til næste indexnummer hver gang jeg støder på \n så arrayet bliver ikke fyldt helt op). Jeg har eksperienteret lidt med pointers men det har det med at crashe mit program. Mit spørgsmål er så, er det muligt at indlæse linjerne uden at skulle fylde restdelen af arrayet op med whitespaces? F.eks ved at bruge pointers istedet?
Problemet er ikke at indlæse linjerne, men at de skal sorteres og helst være intakte (hvis jeg f.eks laver et array med plads til 100 karakterer, og der er 125 mister jeg de sidste 25, og hvis linjen har 10 karakterer og der er plads til 1024, tjaa, så er der bare lidt for meget plads. Jeg ved at jeg v.h.a. pointers kan lave arrays med dynamisk størrelse, men da jeg indlæser karakterene fra filen en-for-en, så skal jeg bruge en funktion som ligesom strcpy(), lægger det ind bagerst i filen, men så vidt jeg ved, så virker strcpy() kun ved indexbaserede arrays.
Det var nu ikke helt det jeg mente. Med pointers kan man nøjes med at skrive: char *p; p = "hello word"; istedet for først at skulle bestemme længden. Da jeg ved at man også kan oprette arrays på denne måde, ville jeg gerne vide om det er muligt at stoppe en karakter eller en streng ind for enden af pointeren, ligesom man gør med strcpy.
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.