Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » array von zeigern auf char

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.06.2004, 21:59 Uhr
dongil3472



hallo - kann mir jemand sagen was ich hier grundsätzliches falsch mache ...ich versuche mittels strcpy ein element in das zeigerarray hinzuzufügen, endet aber in einer speicherverletzung.....

Code:


C++:

char *existingDistributions[20] = {"AAAA","BBBB"};
void main()
{

printf ("OUT1: %s \n",&(*(existingDistributions[0]))); // funkt gibt AAAA aus
printf ("OUT2: %s \n",&(*(existingDistributions[1]))); // funkt gibt BBBB aus


strcpy(&(*(existingDistributions[3])),"CCCC");  // schmiert gnadenlos ab!

}



danke euch !!
gil

Dieser Post wurde am 04.06.2004 um 21:01 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.06.2004, 11:49 Uhr
ao

(Operator)


Für existingDistributions[3] ist auch kein Speicher da. Du musst vorher

C++:
existingDistributions[3] = malloc (5); /* in C */
existingDistributions[3] = new char (5); /* in C++ */


machen. Du musst dir mindestens 5 Zeichen holen, damit dein "CCCC"-String reinpasst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.06.2004, 12:35 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


öhm ich würd mal glatt sagen ao ist da ausversehen ein kleines tippfehlerchen unterlaufen
es muss

C++:
existingDistributions[3] = new char [5];



auch bin ich mir nicht sicher ob der standard festlegt das sizeof(char)==1 ist...
ich dachte immer es gilt 1<=sizeof(char)<=....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.06.2004, 17:39 Uhr
ao

(Operator)



Zitat:
Windalf postete
öhm ich würd mal glatt sagen ao ist da ausversehen ein kleines tippfehlerchen unterlaufen
es muss

C++:
existingDistributions[3] = new char [5];



auch bin ich mir nicht sicher ob der standard festlegt das sizeof(char)==1 ist...
ich dachte immer es gilt 1<=sizeof(char)<=....


jau, vertippt.

Aber sizeof (char) ist immer 1. Allerdings muss ein char nicht 8 Bit haben, das ist maschinenabhängig.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.06.2004, 20:41 Uhr
~dongil3472
Gast


danke für die hinweise...funkt natürlich..kaum macht mans richtig , gehts !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: