Witam, gdy tworzę dwa łańcuch znaków(2 elementowe) bezpośrednio po sobie i wczytuje przy pomocy fread pierwszy z nich a na wejściu dam wyraz 5 znakowy to co powinno się stać? Code blocks po wypisaniu ich wyświetla mi pierwszy 5 znakowy ten co podałem a 2 wyświetla 2 krzaczki i ten pierwszy łańcuch. Czy nie powinno być tak że pierwszy wyświetlił się ten co podałem na wejście, a drugi to powinien być fragment tego pierwszego? Mogłem napisać jakieś bzdury bo jestem już śpiący :-)

- Rejestracja:ponad 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
3
Stos działa w drugą stronę ;) Wczytaj sobie ten ciąg do tego drugiego stringa. Poza tym mieszasz trochę rozmiary. C-string musi mieć o 1 znak więcej i na końcu \0 zebyś go mógł dobrze wypisać (bo przy wypisywaniu wypisuje ci aż nie trafi na 0, więc jak 0 nie będzie to wypisze co kupę krzaków)

- Rejestracja:około 16 lat
- Ostatnio:6 miesięcy
0
Mógłbyś podać kod, bo nie potrafię sobie tego zwizualizować?
Jeśli masz coś w rodzaju:
char a[2], b[2];
fread(a, 1, 5, f);
to jest to UB (tzn. błędny kod, może działać tak, może inaczej, a najczęściej nie działa wcale).
char *a = "ab", *b = "cd";
fread(a, 1, 5, f);
to tym bardziej jest to UB.
Ale może źle sobie wyobrażam o co chodzi.

już 40 minut przeglądam forum? :O Ech, jak odpisywałem w wątku to byłem pierwszy.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
Shalom