Ich versuche, ein Array in c basierend auf den Befehlszeilenargumenten dynamisch zuzuordnen, aber ich bekomme einen Ausnahmefehler. Was mache ich falsch?2D Array mit malloc() Fehler
int **array =(int**)malloc(Argument1);
for(a=0;a<Argument2;a++)
array[a]=(int*)malloc(Argument2);
und die exeption geworfen wird nach:
__forceinline void * __cdecl _heap_alloc (size_t size)
{
//stuff here
return HeapAlloc(_crtheap, 0, size ? size : 1); }
ich an die bekam einmal für Schleife und bekam dann einen Zugriffsfehler bei dem Versuch, die Daten zu lesen, aber jede andere Zeit löst es einen Haltepunkt. Was könnte ich in Visual Studio falsch machen?
Diese mallocs kann möglicherweise nicht korrekt. Erstens, werfen Sie nicht die Rückgabe von malloc in C aus. Zweitens ordnen Sie in Ihrer Schleife immer mehr Speicher zu. Erstes Mal, 1 Byte. Das nächste Mal 2 Bytes (für insgesamt 3), das nächste Mal drei Bytes, usw., bis Sie den Wert von Argument 2 erreichen. –
Sie haben Recht, sie sind nicht korrekt, aber ich kämpfe um herauszufinden, warum sie nicht sind funktioniert – luvAtime41
Sie zeigen nicht den Code, der den Zugriff ausführt, aber Sie sagen, "... bekam einen Zugriffsfehler beim Versuch, die Daten zu lesen ..." –