tablica, plus malloc.

Odpowiedz Nowy wątek
2013-03-30 18:02
0

Witam, program, który mam napisać (tylko, czyste C wchodzi w gre) pobiera z wejścia liczbę przynajmniej o 35 znakach, lecz nie wiemy, czy będzie ich tyle, czy więcej.
Prosiłbym o pomoc w napisaniu tej funkcji. Wiem, że potrzebna do tego jest dynamiczna tablica, jak i funkcja malloc.

 int *tab, rozmiar;
        printf("Podaj swoja liczbe: "); // nie wiem jak tutaj bedzie;/
        scanf("%d", &rozmiar);                      
        tab = (int*)malloc(rozmiar * sizeof(int));           

Dodam, iż muszę później operować na indeksach tej tablicy. Dzięki, pozdrawiam.

edytowany 1x, ostatnio: mistiq, 2013-03-30 18:03

Pozostało 580 znaków

2013-03-30 18:12
0

Wczytuj znak po znaku.


Pozostało 580 znaków

2013-03-30 18:29
0

hm, jakis pomysł na tą funkcję?

Pozostało 580 znaków

2013-03-30 18:49
0

Masz wczytać co najmniej 35 znakową liczbę czy liczbę o wartości co najmniej 35 ?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2013-03-30 18:53
0

Liczbę przynajmniej 35 znakową..

Pozostało 580 znaków

2013-03-30 18:55
char buffer[256];
scanf("%255s", buffer);

Pozostało 580 znaków

2013-03-30 18:58
0

hm.. jakbyś mógł jeszcze określić pokrótce co to robi, gdyż pierwszy raz widzę coś takiego;)

Pozostało 580 znaków

2013-03-30 18:59
0

To wczytuje liczbę maksymalnie 255 znakową (tablica ma 256 elementów, bo wziąć należy pod uwagę dodatkowo null-terminator).
Dokumentacja nie boli.


Pozostało 580 znaków

2013-03-30 19:02
0

tak, tak, to widzę, bardziej zastanawia mnie ten moment scanf("%255s", buffer); 255 s?;)

ach, dobra, wykminiłem to jakoś sam, dzięki wielkie.

edytowany 1x, ostatnio: mistiq, 2013-03-30 19:08
chyba nie chcesz buffer overflow'ow? - n0name_l 2013-03-30 19:58

Pozostało 580 znaków

2013-03-30 19:13
1

s - String of characters - Any number of non-whitespace characters, stopping at the first whitespace character found. A terminating null character is automatically added at the end of the stored sequence.

oraz więcej informacji http://www.cplusplus.com/reference/cstdio/scanf/

A wracając do twojego pytania to odpowiedź @n0name_l jest dobra, gdyż oszacowanie wielkości danych to przydatna umiejętność, ale jeśli chcesz to poczytaj o realloc http://www.cplusplus.com/reference/cstdlib/realloc/

edytowany 3x, ostatnio: privat3, 2013-03-30 19:15
realloc robi straszny syf w pamieci... - n0name_l 2013-03-30 19:59

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