On Thursday 04 September 2003 14:39, Volker Jacobsen wrote:
SQLINTEGER eins, seins; char *streins, zwei[50]; /* Verbindung zur Datenbank aufbauen und Spalten anbinden zwei wird an eine text-Spalte angebunden, eins an die Index-Spalte*/
while (odbc_erg!=SQL_NO_DATA) { odbc_erg=SQLFetch(odbc_hstmt); sprintf(, seins, "%d", (int)eins); cout<
Der Witz an der Sache ist der, daß, wenn ich das ganze unter DDD debuge alles einwandfrei läuft,
Glaub' ich nicht. Und wenn, dann wäre das reiner Zufall.
aber wenn ich das Programm in ner Shell laufen lasse, krieg ich nen Speicherzugriffsfehler. Und ich weiß einfach nicht wieso.
Abgesehen von dem Syntax-Error (der Code compiliert ja noch nicht mal):
Wo denkst Du kommt der Speicher her, in den Du mit sprintf() schreibst?
char * streins
Ist ein Zeiger auf Characters, der zu allem Überfluß auch noch ins Nirvana
zeigt. Entweder du allokierst Speicher (malloc(), calloc(), new) oder Du
reservierst ein Array fester Größe wie bei 'zwei'. So jedoch ist völlig klar,
daß es einen Core gibt.
Außerdem gibt es wirklich keinen Grund, bei Ausgabe mit 'cout' selber zu
konvertieren; Du kannst die Daten einfach nach 'cout' werfen. Das ist der
Witz bei C++ -Stream-I/O.
CU
--
Stefan Hundhammer