Just trying to use a simple macro which reserves memory for a 2D array and initialize every the whole array with one value, but gcc throws this error :
2DMakro.c:39:5: error: expected expression
ALLOC_ARRAY2D(array, int, dim1Makro, dim2Makro, initMakro);
#include <stdio.h>
#include <stdlib.h>
#define ALLOC_ARRAY2D(ARRAY,TYPE,DIM1,DIM2,INIT)\
(TYPE **ARRAY;\
ARRAY = (TYPE**) malloc(DIM1*sizeof(TYPE));\
for(int zeile = 0; zeile < DIM1; zeile++) {\
}\
for(int a = 0; a < DIM1;a++){\
for(int b = 0; b < DIM2; b++){\
ARRAY[a][b] = INIT;\
}\
}
#define DEL_ARRAY2D(ARRAY,DIM1)\
(for int zeile = 0; zeile < DIM1 ; zeile++) {\
for(int spalte = 0; spalte < DIM2 ; spalte++){\
//Gibt Speicherplatz frei
free(ARRAY[zeile]);\
}\
})
int
main(int argc, char *argv[]) {
//Variabeln
char *type,*dim1,*dim2,*init;
char* dim1P, dim2P,initMakroP;
int dim1Makro, dim2Makro, initMakro;
//char zu integer konvertieren
dim1Makro = atoi(argv[1]);
dim2Makro = atoi(argv[2]);
initMakro = atoi(argv[3]);
ALLOC_ARRAY2D(array, double, dim1Makro, dim2Makro, initMakro);
DEL_ARRAY2D(ARRAY, DIM1);
return 0;
}
Well and this is my .c file, any suggestions what I did wrong? Thanks in advance.