Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Ändra storlek på en array??

Postades av 2002-05-14 18:57:37 - Peter Jonsson, i forum c++, Tråden har 4 Kommentarer och lästs av 1038 personer

Hej!

Jag vill ändra storleken på en Array i run-time, men vill ha kvar värdena i arrayen. Går det? De dokument jag hittat säger att det inte går utan man måste spara undan värden, skapa nya arrayen, skriva tillbaka. Detta går så smidigt i VB med ReDim preserve! Hoppas det finns ett lika enkelt sätt i C++.

*Hoppas*

MVH

//Peter


Svara

Sv: Ändra storlek på en array??

Postades av 2002-05-14 19:27:26 - Niklas Jansson

Det beror lite på vad du menar med "array", eftersom detta är så olika i C++.

Om du har en vanlig array; en

int Array[10];

går det inte.

Har du istället en dynamiskt allokerad, dvs en

int Array[];

eller

int *Array;

Så går det, men bara på det sättet som du beskriver själv.
I och med att du skriver C++ så kan (och bör) du använda klassen "vector" istället.
I det fallet kan du omdimensionera den samtidigt som du behåller värdena.

/Niklas Jansson


Svara

Sv: Ändra storlek på en array??

Postades av 2002-05-15 12:34:43 - Peter Jonsson

Jag allokerar en dynamisk array som pekar på en klass.
Jag fick göra som jag själv förslog, att kopiera till en temporär pekare, omdimensionera, å sen kopiera tillbaka.... detta funkar så jag är nöjd... det var bara en labb så inget större projekt.

Tack iaf!

//Sune


Svara

Sv: Ändra storlek på en array??

Postades av 2002-05-15 14:41:57 - Niklas Jansson

Två detaljer bara (för framtida labbar) : Du behöver inte "kopiera till en temporär pekare, omdimensionera, å sen kopiera tillbaka".

Gör bara en ny pekare och kopiera dit dem.

DinKlass *pArray;
...
DinKlass *pTemp;
pTemp = new DinKlass[iNyttAntal]
for(size_type iNu=0; iNu<iGammaltAntal; iNu++)
pTemp[iNu] = pArray[iNu];

delete pArray[];
pArray=pTemp;

Ett annat - mycket effektivare - alternativ hade varit att ha arrayer till pekare:

DinKlass **ppArray;
...
DinKlass **ppTemp;

ppTemp = new *DinKlass[iNyttAntal]
for(size_type iNu=0; iNu<iGammaltAntal; iNu++)
ppTemp[iNu] = ppArray[iNu]; //Kopierar bara adressen

//osäker på om dessa raderna skall vara exakt så här. Du fattar principen.
delete ppArray [];
ppArray=ppTemp;


Sedan är det ofta bättre med en vector<DinKlass> istället.

/Niklas Jansson


Svara

Sv: Ändra storlek på en array??

Postades av 2002-05-18 18:02:16 - Peter Jonsson

Okej....detta ska jag lägga på minnet..... tackar!!

MVH

//Sune


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
638
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies