The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > High Level Programming
.
google unix.com



High Level Programming Post frågor om C, C + +, Java, SQL och andra programmeringsspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
HP-UX minnesanvändningen fördelning dehuang83 HP-UX 3 06-02-2007 04:40
HP-UX minnesanvändningen fördelning dehuang83 UNIX for Dummies Frågor & Svar 1 05-03-2007 02:40
tar: minnesallokering misslyckades gfhgfnhhn UNIX for Dummies Frågor & Svar 1 03-05-2007 11:23
trådar och minnesallokering upptågsmakare UNIX för avancerade & Expertanvändare 3 12-14-2005 12:45
minnesallokering Sagar UNIX for Dummies Frågor & Svar 1 01-05-2002 11:53

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 08-30-2008
naan naan is offline
Registered User
  
 

Join Date: Jul 2006
Inlägg: 31
Dynamisk minnesallokering

Hej,

Jag försöker att bearbeta rad för rad i en fil. Men jag ska inte fördela fasta anslag för att läsa innehållet i filen. Minnet bör vara dynamiskt fördelas. Förvirringen är hur kan jag bestämma storleken på varje rad, sätta den i en buffert med minne som med storleken på den linjen?


Finns det något optimalt sätt att göra detta?

Tack,
Anitha
  #2 (permalänk)  
Old 08-30-2008
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderator (The Tutor)
  
 

Join Date: juni 2008
Ort: INDIEN
Inlägg: 1.420
Storleken på en linje innebär dess längd rätt?
  #3 (permalänk)  
Old 08-30-2008
naan naan is offline
Registered User
  
 

Join Date: Jul 2006
Inlägg: 31
Ja, längden på varje linje.

Antag att jag har en fil med raderna:
I dag är det tisdag.
I morgon är det onsdag.

Jag måste hitta den längd på första raden som jag kan göra med karaktären av karaktären behandlingen tills jag når en '\ n' med en räkningen på det antal tecken, men då måste jag gå tillbaka till början av raden igen för att läsa innehållet på linjen och sätta i bufferten som fördelas antalet jag fick av den första nivån för att räkna.
  #4 (permalänk)  
Old 08-30-2008
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
  
 

Join Date: februari 2005
Ort: Bangalore, Indien
Inlägg: 2.798
Citat:
Ursprungligen postat av naan View Post
Ja, längden på varje linje.

Antag att jag har en fil med raderna:
I dag är det tisdag.
I morgon är det onsdag.

Jag måste hitta den längd på första raden som jag kan göra med karaktären av karaktären behandlingen tills jag når en '\ n' med en räkningen på det antal tecken, men då måste jag gå tillbaka till början av raden igen för att läsa innehållet på linjen och sätta i bufferten som fördelas antalet jag fick av den första nivån för att räkna.
Varför dont du bygga en buffert på cirka storlek säga 1024. Initialisera bufferten innehållet med 0. När du läser varje tecken tas som tecken i bufferten. När det är gjort, du har längd och innehåll. Skapa ditt nya minne med längd och gör en memcpy (destination, källa, längd) för att kopiera innehållet.
  #5 (permalänk)  
Old 08-30-2008
matrixmadhan matrixmadhan is online now Forum Advisor  
Technorati Master
  
 

Join Date: mars 2005
Ort: löv i B + träd
Inlägg: 2.960
Detta brukar fungera för rader som är större än storlek 1024

istället analysera genom linje och sedan göra en dynamisk tilldelning och kopiera innehållet, utan det.

Men kapaciteten kommer att drabbas här som minne allokeras och deallocated varje gång för att analysera en rad. Istället för en stor buffertstorlek gillar 1KB eller 2 KB be Vino föreslagit kan användas säkert.
  #6 (permalänk)  
Old 08-31-2008
tsurko tsurko is offline
Registered User
  
 

Join Date: juni 2007
Ort: Sofia, Bulgarien
Inlägg: 35
Kanske den här kommer att hjälpa?
  #7 (permalänk)  
Old 09-02-2008
Shamrock shamrock is offline Forum Advisor  
Registered User
  
 

Join Date: oktober 2007
Ort: USA
Inlägg: 753
Citat:
Ursprungligen postat av naan View Post
Hej,

Jag försöker att bearbeta rad för rad i en fil. Men jag ska inte fördela fasta anslag för att läsa innehållet i filen. Minnet bör vara dynamiskt fördelas. Förvirringen är hur kan jag bestämma storleken på varje rad, sätta den i en buffert med minne som med storleken på den linjen?


Finns det något optimalt sätt att göra detta?

Tack,
Anitha
Några tvingande skäl för att gå till en dynamisk lösning?
En statisk lösning inte kan optimeras utan en dynamisk lösning skulle vara dyrt i form av mp enheter.
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 01:50.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0