Was stimmt nicht mit dieser for-Schleife?
-
Hallo, was einer, warum der Debugger mir das Programm abbricht, wenn ich diese Schleife durchlaufe? Hab keine Ahnung, warum...
CString *rgelems; // Pointer to CString elements // Now lock the array for editing and get a pointer // to the raw elements SafeArrayAccessData(v.parray, (void**)&rgelems); CString ebike = "Ebike"; // Loop through setting the elements for (int c = 0; c <= 1; c++) rgelems[c] = ebike;
...wäre nett, wenn mir da einer helfen könnte.
Gruss,
chullain
-
@chullain,
ich habe SafeArrayAccessData noch nie verwendet. Aber so wie ich die MSDN verstanden habe, erstellen diese Funktion ein Array. Daher hast du zwar ein Array jedoch ohne Speicher für die einzelnen Elemente.Mit
rgelems[c] = ebike;
versuchst du nun auf uninitialisierten Speicher zuzugreifen was folglich mit einer Access Violation endet. Daher musst du bevor du dem Element den String zuweist erstmal genügend Speicher für dieses Element reservieren.