The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
minneadresser areef4u High Level Programmering 0 08-04-2006 08:43
Multibyte tegn til ASCII jerardfjay Shell programmering og Skripting 8 11-18-2005 02:45
Heksadesimale tegn ascii fil budrito HP-UX 2 08-10-2005 11:26
dumt spørsmål om ascii tegn jalburger High Level Programmering 2 09-28-2004 04:56
minneadresser Paravozzz High Level Programmering 0 10-15-2002 01:17

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 denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 01-24-2008
JamesGoh JamesGoh is offline
Registrert bruker
  
 

Bli Dato: november 2007
Innlegg: 89
c språk + enkle spørsmål angående minneadresser og ASCII-tegn

Bare et enkelt spørsmål (som kan virke dum så bære over med meg) som dukket opp i tankene mine her om dagen. Do ASCII-tegn i seg selv (f.eks / n, 0, a) ha en faktisk minne adresse?

Mitt spørsmål melder seg, fordi Im oppmerksom på at hver gang jeg oppretter og initalise en peker som dette for eksempel


Code:
int *ptr = 5;

Jeg får alltid en nullpeker feil.

mange takk
  #2 (permalink)  
Old 01-24-2008
kløver shamrock is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Oct 2007
Beliggenhet: USA
Innlegg: 753
Sitat:
Originally Posted by JamesGoh View Post
Bare et enkelt spørsmål (som kan virke dum så bære over med meg) som dukket opp i tankene mine her om dagen. Do ASCII-tegn i seg selv (f.eks / n, 0, a) ha en faktisk minne adresse?

Mitt spørsmål melder seg, fordi Im oppmerksom på at hver gang jeg oppretter og initalise en peker som dette for eksempel


Code:
int *ptr = 5;

Jeg får alltid en nullpeker feil.

mange takk
Ja de gjør. Din erklæring oppretter en peker men ikke begrense det til en variabel av type int. Har kompilere koden i orden og på hvilken kompilator?
  #3 (permalink)  
Old 01-24-2008
JamesGoh JamesGoh is offline
Registrert bruker
  
 

Bli Dato: november 2007
Innlegg: 89
For koden jeg snakket om i mitt første innlegg,


Code:
int *ptr=5;

kompilatoren (jeg bruker gcc btw), produsert en advarsel som sier at en peker fra heltall ble gjort uten en nødvendig typecast. (Shamrock advart meg om dette, så dette gcc utgang var sannsynligvis forventet).

Jeg prøvde dette


Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)

og fant programmet kompileres fint, men under kjøring fikk jeg en segmentering feil feil. Jeg har også funnet at i første kodesegmentet, hvis du ignorerer kompilatoren advarsel og kjøre programmet rett, får du de samme run-time feil.

Som henvisningene er ment å bli tildelt minneplasseringer (og peker på verdier), med hensyn til dette grunnleggende forståelse og det faktum at ASCII tegn minneadresser, ikke begge koden segmentene teknisk korrekt?

Sist endret av JamesGoh; 01-24-2008 kl 07:18..
  #4 (permalink)  
Old 01-25-2008
kløver shamrock is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Oct 2007
Beliggenhet: USA
Innlegg: 753

Code:
int *ptr=5;

Peker bare kan initialiseres til null eller null hvis det ikke peke på en variabel av denne typen.


Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)

Den "% s" konvertering Spesifikasjonen tar en peker argumentet ikke selve tegnet som * str peker til. Så hvis du vil skrive ut hele strengen ...


Code:
printf("string value is %s\n", str);

og hvis du vil skrive ut tegnet * str poeng til ...


Code:
printf("str points to %c\n", *str);

  #5 (permalink)  
Old 01-28-2008
JamesGoh JamesGoh is offline
Registrert bruker
  
 

Bli Dato: november 2007
Innlegg: 89
Sitat:
Originally Posted by kløver View Post
Code:
int *ptr=5;

Peker bare kan initialiseres til null eller null hvis det ikke peke på en variabel av denne typen.
Så dette er alltid tilfelle (unntatt for brukerdefinerte strenger) i virkelighetens verden programmering, selv om enkelte ASCII-tegn (for eksempel 5) har minneadresser?
  #6 (permalink)  
Old 01-29-2008
kløver shamrock is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Oct 2007
Beliggenhet: USA
Innlegg: 753
Sitat:
Originally Posted by JamesGoh View Post
Så dette er alltid tilfelle (unntatt for brukerdefinerte strenger) i virkelighetens verden programmering, selv om enkelte ASCII-tegn (for eksempel 5) har minneadresser?
Ja ASCII-tegn har minneadresser om 5 er et heltall ikke en ASCII tegn. Å være intrepreted et tegn i C den trenger å være i enkle anførselstegn.


Code:
char v = '5';

Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 06:00.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0