Добрый вечер. Столкнулся с необходимостью использовать GArray вместо обычных массивов.
Ковыряя документацию с горем пополам написал код (который конечно же не работает
):
#include <stdio.h>
#include <glib.h>
int main(int argc, char **argv)
{
int n = 3;
int rbr = 4;
int j, k;
GArray *tmp_point;
GArray *dPoint;
dPoint = g_array_new(FALSE, FALSE, sizeof(GArray*));
GArray *Point;
Point = g_array_sized_new(FALSE, FALSE, sizeof(gint), (guint) n);
for (j = 0; j <= rbr-1; j++)
{
for (k = 0; k<=n-1; k++)
{
g_array_append_val(Point, k);
}
g_array_append_val(dPoint, Point);
g_array_free(Point, FALSE);
}
for (j = 0; j<=((int) dPoint->len); j++)
{
tmp_point = &g_array_index(dPoint, GArray, j);
for (k = 0; k<=n-1; k++)
{
printf("%d ", g_array_index(tmp_point, gint, k));
}
printf("\n");
}
return 0;
}
Для обычных массивов это выглядит как:
#include <stdio.h>
int main(int argc, char **argv)
{
int n = 3;
int rbr = 4;
int j, k;
int x[n][rbr];
for (j = 0; j <= rbr-1; j++)
{
for (k = 0; k<=n-1; k++)
{
x[j][k]=k;
}
}
for (j = 0; j<=rbr-1; j++)
{
for (k = 0; k<=n-1; k++)
{
printf("%d ", x[j][k]);
}
printf("\n");
}
return 0;
}
Боюсь сам я очень долго буду тупить. Надеюсь на вашу помощь.