memcpy() und __int64
-
Na also, dass ptarget initialisiert ist, ist ja wohl klar. Ich kann ja nicht die ganzen 2000 Programmzeilen posten.
-
Any schrieb:
Willst du wirklich eine binäre Kopie oder eine logische?
Die Kopie soll schon binär sein.
@ ROFLMAO: danke, verarschen kann ich mich selber.

-
http://www.lugbz.org/documents/smart-questions_de.html
aber ein beispiel wenigstens...
-
Praetorian schrieb:
Na also, dass ptarget initialisiert ist, ist ja wohl klar. Ich kann ja nicht die ganzen 2000 Programmzeilen posten.
Und ich kann dir ohne code ( müssen ja nicht alle 2000 zeilen sein ) nur sagen dass es memcpy egal ist wieviele bytes es hin und her schaufelt.
Kurt
-
Also gut, nochmal von vorne: Es tut mir Leid, dass meine Posts offenbar missverstanden wurde, ich will hier niemanden beleidigen!
Hier ein etwas konkreteres Beispiel:
char * carray = new char [1000]; char * ptarget = & carray [0]; ... // hier fülle ich carray mit diversen Daten auf und verschiebe ptarget dabei immer weiter nach hinten (-> "Schreibkopf") __int64 value = 123456; memcpy (ptarget, &value, 8);Ich benutze memcpy() im ganzen Programm über 100 Mal mit diversen Source-Zeigertypen von char bis long, aber bei __int64 scheint es Probleme zu geben.
-
das ist nicht der fehler.
kompilierbares darstellendes minimalbeispiel bitte.
-
Der Fehler liegt an anderer Stelle.
-
memcpy kann das:
#include <cstdlib> #include <iostream> int main(int argc, char *argv[]) { __int64 iTest = 400000000; iTest *= 400000000; std::cout << iTest << std::endl; char Text[sizeof(__int64)]; memcpy(Text,&iTest,sizeof(__int64)); std::cout << *(reinterpret_cast<__int64*>(Text)) << std::endl; system("PAUSE"); return EXIT_SUCCESS; }mfg.
-
Wenn Dir das nicht um die Ohren fliegt, ist das nur Glück.
Vermutlich ist sizeof( __int64) != 4 (nehme ich wenigstens mal an)...
-
niemand schrieb:
Wenn Dir das nicht um die Ohren fliegt, ist das nur Glück.
Vermutlich ist sizeof( __int64) != 4 (nehme ich wenigstens mal an)...Ja hab ich auch gerade gesehen, schon behoben.
mfg.
-
Bei mir gehts. Des weiteren ist __int64 kein Standarddatentyp, und ich würde fast tippen er ist 8 Bytes groß

Gruß