The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > High-Level-Programmierung
.
Google unix.com



High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Speicher-Adressen areef4u High-Level-Programmierung 0 08-04-2006 07:43 AM
Multibyte-Zeichen zu ASCII jerardfjay Shell Programmierung und Scripting 8 11-18-2005 02:45 AM
Hex-Zeichen der ASCII-Datei budrito HP-UX 2 08-10-2005 10:26 PM
dumme Frage über ASCII-Zeichen jalburger High-Level-Programmierung 2 09-28-2004 03:56 PM
Speicher-Adressen Paravozzz High-Level-Programmierung 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 01-24-2008
JamesGoh JamesGoh is offline
Registrierte Nutzer
  
 

Join Date: Nov 2007
Beiträge: 89
Sprache C + einfache Frage in Bezug auf Speicher-Adressen und ASCII-Zeichen

Nur eine Frage (die auch sein mag, so albern tragen mit mir), dass sich in meinen Augen den anderen Tag. Sie ASCII-Zeichen durch (z. B. / n, 0, a) eine tatsächliche Speicheradresse?

Meine Frage stellt sich, weil Im bewusst, dass jedes Mal, wenn ich erstellen und initalise ein Zeiger, wie diese zum Beispiel

Code:
int *ptr = 5;
Ich bekomme immer eine Null-Zeiger-Fehler.

vielen Dank
  #2 (permalink)  
Old 01-24-2008
Shamrock shamrock is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Oct 2007
Ort: USA
Beiträge: 750
Zitat:
Zitat von JamesGoh View Post
Nur eine Frage (die auch sein mag, so albern tragen mit mir), dass sich in meinen Augen den anderen Tag. Sie ASCII-Zeichen durch (z. B. / n, 0, a) eine tatsächliche Speicheradresse?

Meine Frage stellt sich, weil Im bewusst, dass jedes Mal, wenn ich erstellen und initalise ein Zeiger, wie diese zum Beispiel

Code:
int *ptr = 5;
Ich bekomme immer eine Null-Zeiger-Fehler.

vielen Dank
Ja, sie tun. Ihre Erklärung schafft einen Zeiger, aber nicht zwingen es zu einer Variable vom Typ int. Gibt es in Ihrem Code zu kompilieren und in Ordnung, was Compiler?
  #3 (permalink)  
Old 01-24-2008
JamesGoh JamesGoh is offline
Registrierte Nutzer
  
 

Join Date: Nov 2007
Beiträge: 89
Für den Code habe ich in meinem ersten Post,

Code:
int *ptr=5;
der Compiler (ich benutze gcc BTW), die ein Warnung, dass ein Zeiger von Ganzzahl worden sei, ohne dass eine notwendige typecast. (Shamrock warnte mich über diese, so dass diese Ausgabe gcc war wohl zu erwarten).

Ich habe versucht dieses

Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)
und fand das Programm zu, das gut, aber während der Laufzeit habe ich einen segmentation fault Fehler. Ich fand auch, dass in den ersten Code-Segment, wenn Sie die Compiler-Warnung ignorieren und das Programm gerade, Sie erhalten die gleiche Laufzeit-Fehler.

Als Zeiger sind zugewiesen werden Speicherstellen (und auf Werte), in Bezug auf diese grundlegende Verständnis und die Tatsache, dass ASCII-Zeichen-Speicher-Adressen haben, sind nicht beide Code-Segmente technisch korrekt?

Zuletzt bearbeitet von JamesGoh; am 01-24-2008 07:18 PM..
  #4 (permalink)  
Old 01-25-2008
Shamrock shamrock is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Oct 2007
Ort: USA
Beiträge: 750
Code:
int *ptr=5;
Pointer kann nur initialisiert werden, auf Null oder null, wenn sie nicht auf eine Variable dieses Typs.

Code:
char *str="helloworld\n";
printf("string value is %s\n",*str)
Die "% s" Conversion-Spezifikation ist ein Zeiger Argument nicht, dass die tatsächlichen Charakter * str zeigt. Also, wenn Sie wollen, drucken Sie die gesamte Zeichenfolge ...

Code:
printf("string value is %s\n", str);
und wenn Sie wollen, drucken Sie die Zeichen, * str auf ...

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

Join Date: Nov 2007
Beiträge: 89
Zitat:
Zitat von Shamrock View Post
Code:
int *ptr=5;
Pointer kann nur initialisiert werden, auf Null oder null, wenn sie nicht auf eine Variable dieses Typs.
Daher ist dies immer der Fall ist (außer für benutzerdefinierte Strings) in der realen Welt Programmierung, auch wenn einzelne ASCII-Zeichen (z. B. 5) Speicher-Adressen haben?
  #6 (permalink)  
Old 01-29-2008
Shamrock shamrock is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Oct 2007
Ort: USA
Beiträge: 750
Zitat:
Zitat von JamesGoh View Post
Daher ist dies immer der Fall ist (außer für benutzerdefinierte Strings) in der realen Welt Programmierung, auch wenn einzelne ASCII-Zeichen (z. B. 5) Speicher-Adressen haben?
Ja ASCII-Zeichen haben Speicher-Adressen aber 5 ist eine Ganzzahl nicht ASCII-Zeichen. Um ein Zeichen intrepreted in C muss es in einfache Anführungszeichen.

Code:
char v = '5';
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 12:49 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0