The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Højtstående Programmering
.
google unix.com



Højtstående Programmering Post spørgsmål om C, C + +, Java, SQL, og andre programmerings sprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
hukommelse adresser areef4u Højtstående Programmering 0 08-04-2006 07:43 AM
Multibyte tegn til ASCII jerardfjay Shell Programmering og Scripting 8 11-18-2005 02:45 AM
Hex tegn i ASCII-fil budrito HP-UX 2 08-10-2005 10:26 PM
dumt spørgsmål om ASCII-tegn jalburger Højtstående Programmering 2 09-28-2004 03:56 PM
hukommelse adresser Paravozzz Højtstående Programmering 0 10-15-2002 12:17 PM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 01-24-2008
JamesGoh JamesGoh is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 89
c sprog + simpelt spørgsmål vedrørende hukommelse adresser og ASCII-tegn

Bare et enkelt spørgsmål (som kan synes fjollet, så bære over med mig), der opstod i mit sind den anden dag. Må ASCII-tegn ved sig selv (fx / n, 0, a) har et virkeligt hukommelse adresse?

Mit spørgsmål opstår, fordi jeg er klar over, at hver gang jeg opretter og initalise en pegepind, som denne for eksempel

Code:
int *ptr = 5;
Jeg får altid en null-pointer fejl.

mange tak
  #2 (permalink)  
Old 01-24-2008
Shamrock shamrock is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: oktober 2007
Beliggenhed: USA
Stillinger: 750
Citat:
Oprindeligt Indsendt af JamesGoh View Post
Bare et enkelt spørgsmål (som kan synes fjollet, så bære over med mig), der opstod i mit sind den anden dag. Må ASCII-tegn ved sig selv (fx / n, 0, a) har et virkeligt hukommelse adresse?

Mit spørgsmål opstår, fordi jeg er klar over, at hver gang jeg opretter og initalise en pegepind, som denne for eksempel

Code:
int *ptr = 5;
Jeg får altid en null-pointer fejl.

mange tak
Ja, de gør. Deres erklæring skaber en pegepind, men ikke tvinge den til en variabel af typen int. Er din kode kompilere okay og hvad compiler?
  #3 (permalink)  
Old 01-24-2008
JamesGoh JamesGoh is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 89
For den kode, jeg talte om i mit første indlæg,

Code:
int *ptr=5;
compileren (jeg bruger gcc btw), produceret en advarsel sige, at en pointer fra heltal blev foretaget uden en nødvendig spillede rollen. (Shamrock advaret mig om dette, så dette gcc produktion var nok forventet).

Jeg forsøgte denne

Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)
og fandt programmet udarbejdes fint, men ved runtime jeg fik en segmentering fejl fejl. Jeg fandt også, at i den første kode segment, hvis du ignorerer compileren advarsel og køre programmet lige, at du får det samme run-time fejl.

Som pegepinde er beregnet til at blive tildelt hukommelsespladser (og peg på værdier), med hensyn til denne grundlæggende forståelse og det faktum, at ASCII-tegn har hukommelse adresser, ikke begge kode segmenter teknisk korrekt?

Senest redigeret af JamesGoh; 01-24-2008 kl 07:18 PM..
  #4 (permalink)  
Old 01-25-2008
Shamrock shamrock is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: oktober 2007
Beliggenhed: USA
Stillinger: 750
Code:
int *ptr=5;
Pointer kun kan initialiseres til nul eller null hvis den ikke peger på en variabel af denne type.

Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)
Den "% s" konvertering specifikation tager en pointer argument ikke den faktiske karakter, at * str. point til. Så hvis du vil udskrive hele strengen ...

Code:
printf("string value is %s\n", str);
og hvis du ønsker at udskrive det tegn, * str. point til ...

Code:
printf("str points to %c\n", *str);
  #5 (permalink)  
Old 01-28-2008
JamesGoh JamesGoh is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 89
Citat:
Oprindeligt Indsendt af Shamrock View Post
Code:
int *ptr=5;
Pointer kun kan initialiseres til nul eller null hvis den ikke peger på en variabel af denne type.
Så dette er altid tilfældet (bortset fra bruger-definerede strenge) i den virkelige verden programmering, selv om enkelte ASCII-tegn (såsom 5) har hukommelse adresser?
  #6 (permalink)  
Old 01-29-2008
Shamrock shamrock is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: oktober 2007
Beliggenhed: USA
Stillinger: 750
Citat:
Oprindeligt Indsendt af JamesGoh View Post
Så dette er altid tilfældet (bortset fra bruger-definerede strenge) i den virkelige verden programmering, selv om enkelte ASCII-tegn (såsom 5) har hukommelse adresser?
Ja ASCII-tegn har hukommelse adresser, men 5 er et heltal ikke et ASCII-tegn. At være intrepreted en karakter i C skal det i enkelte anførselstegn.

Code:
char v = '5';
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 03:06 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0