Enkel programmering|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
Enkel programmering
Johan Karlsson
Kommer du hit ofta?
Medlem
Forum Posts: 1947
Member Since:
September 27, 2005
sp_UserOfflineSmall Offline
1
December 3, 2007 - 8:30 pm
sp_Permalink sp_Print

Tjo!

Sitter och programmerar lite i c++.

Jag har en array jag skulle vilja tömma på värden. Hur gör jag detta lättast?

Skulle ju kunna skapa en for loop som stegade igenom array:en men det kanske finns något kortare sätt?

Tack på förhand!

erikj
Nu vet jag hur man gör inlägg!
Medlem
Forum Posts: 23
Member Since:
April 17, 2006
sp_UserOfflineSmall Offline
1167478
December 3, 2007 - 9:07 pm
sp_Permalink sp_Print

en exempel kod kan se ut såhär:


int[] s = new int[3];
s[0] = 2;
s[1] = 1;
s[2] = 3;
Console.WriteLine(s[0]); //skriver ut 2
Console.WriteLine(s[1]); //skriver ut 1
Console.WriteLine(s[2]); //skriver ut 3
s = null;
s = new int[3];
Console.WriteLine(s[0]); //skriver ut 0
Console.WriteLine(s[1]); //skriver ut 0
Console.WriteLine(s[2]); //skriver ut 0

nu är vektorn nollad, och är 3 possitioner lång. Syntaxet kanske är lite fel då detta är C#, men hoppas det är till hjälp ändå!

Avatar
Gamblor
Member
Medlem
Forum Posts: 3514
Member Since:
September 1, 2002
sp_UserOfflineSmall Offline
1167486
December 3, 2007 - 9:26 pm
sp_Permalink sp_Print
Johan Karlsson
Kommer du hit ofta?
Medlem
Forum Posts: 1947
Member Since:
September 27, 2005
sp_UserOfflineSmall Offline
1167492
December 3, 2007 - 9:45 pm
sp_Permalink sp_Print

Tack för svaren men får det ändå inte rätt. testar såhär:

c++ wrote:
#include
#include
#include
#include

using namespace std;

int main(int argc, char *argv[])
{
int spela[6];

spela[1] = 3;
spela[3] = 4;

cout << spela[1] << " " << spela[3] << endl;; memset (spela,0,10); cout << spela[1] << " " << spela[3] << endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Får utskriften:
3 4
0 4

? varför får itne position 3 värdet 0?

Avatar
Gamblor
Member
Medlem
Forum Posts: 3514
Member Since:
September 1, 2002
sp_UserOfflineSmall Offline
1167494
December 3, 2007 - 9:57 pm
sp_Permalink sp_Print

En int är vanligtvis 8 byte. Du sätter de 10 första bytes:en i arrayen till 0 i din kod. De tio första bytes:en är således spela[0] samt två av åtta bytes i spela[1].

Jag föreslår att du använder memset på följande sätt i ditt exempel


memset(spela, 0, sizeof(int)*6) // tömmer hela arrayen (som består av 6 ints)

eller


memset(spela, 0, sizeof(int)*2) // tömmer de två första int:arna i spela-arrayen

sizeof returnerar storleken på en datatyp i bytes.

Johan Karlsson
Kommer du hit ofta?
Medlem
Forum Posts: 1947
Member Since:
September 27, 2005
sp_UserOfflineSmall Offline
1167513
December 3, 2007 - 11:10 pm
sp_Permalink sp_Print

Ah, tack. hade glömt/inte lärt mig sizeof. 😛
Nu skall jag bara komma på allt annat jag missat 😉

TACK : )

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 1030
Currently Online:
Guest(s) 432
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL