Ich versuche zu verstehen, wie eine Matrix in C funktioniert.Matrix in C mit rand() füllen
Ich habe den folgenden Code:
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
/* random number generator for matrix dimensions */
int xDim, yDim;
srand(time(NULL)); //init. is needed only once
xDim = (rand() % (10000+1) + 50);
yDim = (rand() % (10000+1) + 50);
/* random number generator for matrix contents */
double* myMatr;
myMatr = (double *)malloc(xDim * yDim * sizeof(double));
for(int i=0; i<xDim; i++)
{
for(int y=0; y<yDim; y++)
{
myMatr[i][y]= (double)rand()/RAND_MAX*100.0;
}
}
}
Allerdings habe ich diese Störung erhalte:
test.c:24:13: error: subscripted value is neither array nor pointer nor vector
myMatr[i][y]= (double)rand()/RAND_MAX*100.0;
'myMatr [i]' ist 'double', also können Sie es anscheinend nicht weiter subskribieren. –
Was bedeutet das? – Diaman
'myMatr [i] [y]' -> 'myMatr [i * yDim + y]' – BLUEPIXY