Ze zwykłą tablicą działa, z dynamiczną już nie

Odpowiedz Nowy wątek
2011-10-10 11:04
0

Mam program, którego istotą jest aby wynik zapisywał do tablicy dynamicznej w strukturze. Na zwykłej, statycznej tablicy wszystko ładnie działa. Niestety na dynamicznej już nie.
Kod stuktury:

 struct sygnal
{
    float poczatek, koniec, interwal;
    float *tablica;
    int rozmiar;
    rozmiar = (koniec - poczatek)/interwal;
    tablica = (float*)malloc(rozmiar * sizeof(float));
};

Pozostało 580 znaków

2011-10-10 11:14
0

Napisz sobie funkcję, która to będzie robić. Nie możesz tak sobie po prostu wpisać kodu w strukturę.


"(...) otherwise, the behavior is undefined".
edytowany 1x, ostatnio: Endrju, 2011-10-10 11:15

Pozostało 580 znaków

2011-10-10 11:20
0

Nie bardzo rozumiem... Struktura ma przechowywać tylko wskaźnik do tej dynamicznej tablicy, czy jak?

Pozostało 580 znaków

2011-10-10 11:31
0

Załóżmy, że w kodzie tworzysz obiekt tej struktury:
sygnal sygnalObject;

Powiedz mi jakie wartości w tym momencie mają poczatek, koniec i interwal i ile pamięci miałaby zaalokowac funkcja malloc() dla tablicy?
I podobnie jak napisał Endrju - dopiero po utworzeniu obiektu tej struktury możesz sobie poprzypisywać wartości poszczególnym polom. Mógłbyś pokazac kod ze statyczną tablicą, który wg ciebie działa?

edytowany 2x, ostatnio: Tomek2, 2011-10-10 11:33

Pozostało 580 znaków

2011-10-10 11:32
0

No dokładnie tak. W definicji struktury nie możesz wykonywać funcji

Pozostało 580 znaków

2011-10-10 12:21
0
Tomek2 napisał(a)

Załóżmy, że w kodzie tworzysz obiekt tej struktury:
sygnal sygnalObject;

Powiedz mi jakie wartości w tym momencie mają poczatek, koniec i interwal i ile pamięci miałaby zaalokowac funkcja malloc() dla tablicy?
I podobnie jak napisał Endrju - dopiero po utworzeniu obiektu tej struktury możesz sobie poprzypisywać wartości poszczególnym polom. Mógłbyś pokazac kod ze statyczną tablicą, który wg ciebie działa?

W wersji ze statyczną tablicą mam po prostu w strukturze tablice ze stałą przez co każdy kolejny obiekt tej struktury wie, jaka ma być w nim tablica.

Rzeczywiście, dzięki, nie pomyślałem o tym, a to przecież logiczne. Spróbuję sam sobie poradzić, jak nie to wieczorem będę miał pytania.

Przepraszam za post pod postem, ale:

  • z tablicami się uporałem (dzięki wam)
  • chcę zapisać swoje dane do pliku o wybranej przez siebie nazwie. Nie działa mi taki kod:
    FILE *f;
    printf("Podaj nazwe pliku: ");
    fgets (FileName, sizeof FileName, stdin);
    f=fopen(FileName,"w");
EDYTUJ swoje posty, jeśli chcesz coś dodać/zmienić... - madmike 2011-10-16 14:19

Pozostało 580 znaków

2011-10-16 00:56
0

A możesz pokazać co to jest FileName?

Pozostało 580 znaków

2011-10-16 01:08
0

50-cio elementowa tablica znakowa

Pozostało 580 znaków

2011-10-16 09:36
0

Sprawdzałeś jaką wartość zwraca sizeof? A tak w ogóle to w którym miejscu dostajesz błąd?

fgets() wrzuca do bufora także enter (10).
Użyj scanf i zadziała.

EDYTUJ swoje posty, jeśli chcesz coś dodać/zmienić... - madmike 2011-10-16 14:19

Pozostało 580 znaków

2011-10-17 01:04
0

Właśnie nie dostaję żadnego błędu.

Pozostało 580 znaków

2011-10-17 07:23
fd
0

Pokaż cały kod, nikomu nie chce się już zgadywać

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0