Probleme mit Arrays
-
Irgendwie stehe ich gerade voll auf der Leitung...
wo liegt hier der Fehler:
#include <iostream> #include <math.h> using namespace std; /* Darstellung von quadratischen Matrizen als Felder: z. B. Matrix[16] entspricht: ( Matrix[0] Matrx[1] Matrix[2] Matrix[3] ) ( Matrix[4] Matrx[5] Matrix[6] Matrix[7] ) ( Matrix[8] Matrx[9] Matrix[10] Matrix[11] ) ( Matrix[12] Matrx[13] Matrix[14] Matrix[15] ) */ void print(const double Matrix[], int numElements) { int iHalf = sqrt((double)numElements); for(int y = 0; y < iHalf; y++) { for(int x = 0; x < iHalf; x++) { cout<<Matrix[x+iHalf*y]<<"\t"; } cout<<endl; } } void init_rand(double Matrix[], int numElements, int maxRand) { // numElements = sizeof Matrix / sizeof Matrix[0]; // <- Funktioniert nur wenn Matrix ein Array und kein Zeiger ist for(int i = 0; i < numElements; i++) { Matrix[i] = rand() % (maxRand+1); } } int main() { double Matrix[4]; init_rand(Matrix, 4*4, 16); print(Matrix, 4*4); int dummy; cin>>dummy; }
Bekomme folgende Fehlermeldung: Stack around the variable 'Matrix' was corrupted.
-
Du erzeugst ja auch nur ein Array mit 4Elementen und nicht mit 16
-
genau das meinte ich mit "voll auf der Leitung stehen"
danke