---
title: "Problem med vector och pekare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/150372-problem-med-vector-och-pekare"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "sadsmile"
published: "2006-08-21T08:41:11.000Z"
updated: "2006-08-22T21:44:01.000Z"
replies: 3
views: 462
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/150372-problem-med-vector-och-pekare"
---

# Problem med vector och pekare

## #1 — sadsmile, 2006-08-21T08:41Z

Hej

Sitter här och försöker lära mig lite C++ på egen hand. För att förstå mig på det där med vectorer och pekare så har jag kodat ihop en liten grej där en vector skickas till en funktion och i denna funktionen så görs en swap för att byta plats på två element i vectorn. Detta funkar som det skall. Men när jag sedan skall skriva ut vectorn så blir det en massa annat som skrivs ut i stället.

Lite exempel på vad koden innehåller.

Prototypen:

```
void swapFunkt(vector<int> *sortVekt, int x, int y);
```

Skapadet av vectorn:

```
vector<int> bytVektor;
```

Anrop av funktionen;

```
swapFunkt(&bytVektor, tal1, tal2);
```

Själva funktionen swap:

```
void swapFunkt(vector<int> *sortVekt, int x, int y)
{
    swap (sortVekt[x], sortVekt[y]);
}
```

Utskriften i main (ligger i en for-loop):

```
cout << bytVektor.at(i)<< endl;
```

Skickar jag t.ex. med att elementen 0 och 2 skall byta plats och att dessa från början innehåller 15 och 5 så borde det ju efter ändringen skrivas ut 5 resp 15. Men i stället så skriver programmet ut -1 och 2088857568.

Jag förmodar att det har med pekarna att göra men jag har inte klurat ut vad jag skall ändra för att få en korrekt utskrift.

MVH
Anders

Permalänk: https://www.webforum.nu/p/150372

## #2 — sadsmile, 2006-08-22T12:12Z

Fick hjälp på annat håll så nu funkar det.

Anders

Permalänk: https://www.webforum.nu/p/1854569

## #3 — Koplik, 2006-08-22T12:29Z

Fick du någon förklaring/lösning som kan vara värd att beskriva?

Permalänk: https://www.webforum.nu/p/1854572

## #4 — sadsmile, 2006-08-22T21:44Z

Visst...

I funktionen skall det stå

```
swap ((*sortVekt)[x], (*sortVekt)[y]);
```

Inte

```
swap ((sortVekt)[x], (sortVekt)[y]);
```

Permalänk: https://www.webforum.nu/p/1854776

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/150372-problem-med-vector-och-pekare
