Wpis z mikrobloga

Mam taki śmieszny problem. Tworzę sobie w C w ubuntu programik, która zawiera tablicę dwuwymiarową i dopóki ma ona wymiary maksymalnie 10x10 to wszystko śmiga. Problem pojawia się jak ustalę jej wymiar na np. 50x50, bo wywala mi wtedy błąd:
Segmentation fault (core dumped)
Co można by z tym zrobić?

#programowanie
  • 41
  • Odpowiedz
@6a6b6c: @xan-kreigor: Sorki, za szybko napisałem, problemem nie jest utworzenie tablicy, tylko wpisanie w dane pole wartości, wpisywanie działa tylko dla tablicy 10x10
*zmienna wygląda tak:

typedef struct{
int tab[x][y]
}tablica;
**static tablica *tablica1;

tworzę pamięc współdzieloną dla procesów i chcą ją wypełnić

stosuję taki zapis:
tablica1[0].tab[2][3]=4;**

i wywala błąd jak zwiększę rozmiar tablicy. W sumie brakuje mi tylko tego elementu i programik na zaliczenie skończony. Pewnie to jakiś śmieszny
  • Odpowiedz
@6a6b6c:
pamięć tworzę:
int ddd = shmget (KLUCZ, sizeof(tablica), IPC_CREAT)

kurcze nie wiem jak ci odpisać ( ͡° ʖ̯ ͡°)
brakuje mi tylko tego wpisywania, żeby to skończyć, a nie chcę dla jednego programiku jechać od podstaw kilka dni z poradnikami
  • Odpowiedz
@6a6b6c: Za pomocą shmget tworzę pamięć o nazwie ddd, a potem udostępniam ją procesowi za pomocą shmat, przy najmniej tak myślę i tak zrozumiałem czytając poradniki i zaglądając w inny kod.
  • Odpowiedz
@wykopek_bum: tak to wyglada... pytam czy sprawdzasz czy ddd nie jest -1, bo to by Ci powiedzialo, ze cos nie tak jest. I potem shmat tez moze dac -1, jak cos nie tak bedzie. To trzeba sprawdzac. Pytam tylko czy to robisz, bo jak nie to lipa...
  • Odpowiedz