Ich habe ständig diese Fehler mit meinem Array. Wie soll ich ein 2D-Array unbekannter Größe zurückgeben? Ich versuche ein pbm-Bild zu manipulieren, indem ich es in ein Array umwandle und dann Array-Manipulationen durchführe. Hier ist mein Code
typedef struct
{
unsigned char blackWhite;
} PBMPixel;
typedef struct
{
int x, y;
PBMPixel *data;
} PBMImage;
Dies ist in meiner Header-Datei definiert, die mir keine Probleme bereitet hat. Später habe ich das:
char * ArrayCreate(PBMImage *img, int x, int y)
{
char ManipArray[x][y];
int i = 0;
int j= 0;
for( i=0; i < x; i++)
{
for ( j=0; j < y; j++)
{
char ManipArray[i][j] = img->data[(i*(j+1)+j)].blackWhite;
j++;
}
i++;
}
return ManipArray;
}
Dies sind die Fehlermeldungen, die ich immer zurück bekomme:
P-MFunctionHolder.c: In function 'ArrayCreate':
P-MFunctionHolder.c:171:4: error: variable-sized object may not be initialized
P-MFunctionHolder.c:176:2: warning: return from incompatible pointer type [enabled by default]
P-MFunctionHolder.c:176:2: warning: function returns address of local variable [enabled by default]
Ich verwende MinGW und Windows 8, falls das hilft, aber ich bezweifle, dass das das Problem ist. Ich habe auch nicht den gesamten Code gepostet, weil das etwa 260 Zeilen lang ist und viele genau die gleichen Fehlermeldungen gibt.