Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Работа с матрицами используя GArray из Glib  (Прочитано 584 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн edgar2705

  • Автор темы
  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Добрый вечер. Столкнулся с необходимостью использовать 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;
}

Боюсь сам я очень долго буду тупить. Надеюсь на вашу помощь.

 

Страница сгенерирована за 0.058 секунд. Запросов: 26.