tablica, plus malloc.

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.

0

Wczytuj znak po znaku.

0

hm, jakis pomysł na tą funkcję?

0

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

0

Liczbę przynajmniej 35 znakową..

1
char buffer[256];
scanf("%255s", buffer);
0

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

0

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

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.

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/

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