---
title: "char * test"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/104897-char-test"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "tosses"
published: "2004-06-03T13:10:04.000Z"
updated: "2004-06-04T11:58:33.000Z"
replies: 9
views: 500
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/104897-char-test"
---

# char * test

## #1 — tosses, 2004-06-03T13:10Z

Hej!

Kan någon vänlig själ förklara enkelt hur egentligen char \* test fungerar?

Tack!

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

## #2 — Gaqzi, 2004-06-03T13:51Z

pekare till char namnged test?
Vet inte :P

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

## #3 — PeW, 2004-06-04T06:17Z

Det är en deklaration av en pekare till en adress (ej definierad) i minnet. Då det är av typen char som deklareras så blir storleken för aritmetiken 1 byte. Hade det varit en int \*, skulle storleken för aritmetiken vara 4 bytes. (Med aritmetiken avser jag hur kompilatorn i senare kod behandlar pekaren. Vidare kan storlekarna på typerna variera beroende på plattform)

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

## #4 — tosses, 2004-06-04T06:30Z

Så om jag fattar rätt så anges ett minnseutrymme på 1 byte för variabeln test av typen char.
Håller c koll på så att inte andra variabler osv skriver över minnesutrymmet?
Och vad händer i fall man gör så här:

```
char * test = "";
cout<<"Skriv massor!: ";
cin>>test;
```

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

## #5 — Viktor, 2004-06-04T07:03Z

I C/C++ får du aldrig hjälp med att hålla koll på om någon skriver i ditt minnes område.
Jag vet inte exakt vad som händer i ditt exempel, men jag antar att test kommer att bli 1 byte stor så du kommer bara att kunna skriva in en byte, men eftersom detta är C++ så kommer du utan problem att kunna skriva in ännu fler men då finns ju självklart risken att du skriver över annat minne som är allokerat av andra variabler.

När du arbetar med pekare så använder du new/delete för att skapa utrymme och frigöra utrymme för dem.

/Viktor

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

## #6 — tosses, 2004-06-04T08:55Z

I mitt förra exempel så krachar programmet.
Och antagligen är det det du nämner angående risken att skriva över osv..

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

## #7 — PeW, 2004-06-04T10:45Z

Det är stacken som skrivs över i ditt exempel. Det är dock inte alltid man har sån tur att programmet kraschar utan felet kanske inte uppdagas förräns i speciella situationer. Det är då man är kompis med debuggern... men ivf så måste man vara nogrann med pekare så slipper man överraskningar.

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

## #8 — GunnarD, 2004-06-04T10:50Z

Om man skall vara nog! :)

> **PeW skrev:**
>
> Då det är av typen char som deklareras så blir storleken för aritmetiken 1 byte. Hade det varit en int \*, skulle storleken för aritmetiken vara 4 bytes.

Storleken för aritmetiken för char är sizeof(char), motsvarande för int är sizeof(int).

Kan vara bra att hålla detta i minnet speciellt om man börjar hantera 2bytes char (WCHAR i windows) och Unicode.

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

## #9 — tosses, 2004-06-04T10:53Z

tack för alla svar !! Jag kan tyvärr inte klicka i Acceptera som slutgiltigt svar eftersom jag accepterar allt som slutgiltiga svar:)

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

## #10 — PeW, 2004-06-04T11:58Z

Acceptera det du nyss skrev själv då  ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/104897-char-test
