Aktywne Wpisy
Bergi +94
Siema, prowadzę badania do pracy magisterskiej - dlatego potrzebuję waszych odpowiedzi.
Więc robię #rozdajo na 100 PLN bliczkiem. Losowanie za tydzień jednej osoby z plusujących ten wpis + screen w komentarzu, że wypełniłeś/aś ankietę.
Ankieta krótka i mam nadzieję przyjemna - temat zakupu nowego telefonu i znajomości marki.
Link do ankiety:
https://forms.gle/xoKGTNtrFVV1Dpyg7
#ankieta #magisterka #studia
Więc robię #rozdajo na 100 PLN bliczkiem. Losowanie za tydzień jednej osoby z plusujących ten wpis + screen w komentarzu, że wypełniłeś/aś ankietę.
Ankieta krótka i mam nadzieję przyjemna - temat zakupu nowego telefonu i znajomości marki.
Link do ankiety:
https://forms.gle/xoKGTNtrFVV1Dpyg7
#ankieta #magisterka #studia
MrMas +329
tworzę tablicę, potem ją uzupełniam w pętli while. ustawiam wartość dla indeks=0, robię print tablica[indeks] i wszystko ładnie, potem inkrementuję indeks, dodaję nową wartość do tablica[indeks], robię print tablica[0] i wartość jest już zmieniona.
rozuimem, że to są jakies problemy z alokacją pamięci, że jakoś źle przechowuję adresy ale przestawiałem tworzenie tablicy, wstawiałem gwiazdki, usuwałem i albo wywala program albo dzieje się to co opisałem.
może mi ktoś pomóc?
w skrócie jest plik z liniami które wyglądają tak MAN|Homo sapiens i on sobie to dzieli i przypisuje do dwóch tablic
https://pastebin.com/wcMpU0mL
Drugim sposobem jest losowe wstawianie znaków & oraz * przed nazwa tablicy, ale wtedy musiałbyś jeszcze wstawić gdzieś polecenie malloc.
Dlatego ja polecam pierwsze rozwiązanie.
@BoKoR: czytam i rozumiem błąd ale nie rozumiem rozwiązania.
A czy musisz zrobić to w c?
Bo jak nie, to polecam Pythona ;)
Stworzyłeś tablice 20 wskaźników o nazwie allquestions.
Przeleć sobie pentelką po tej tablicy i dla każdego elementu daj allquestions[i] = malloc(200);
Później przy zapisie danych odczytanumych z pliku użyj funkcji stncpy (poczytaj w dokumentacji co ona robi).
Jak znajdziesz podpowoedż innego Mirka to może skorzystaj z niego, bo ja w c to mało programuje.
strtok
zwraca wskaźniki wskazujące na przekazany bufor.strtok(line, ...)
niemal zawsze zwróci line. Tak więc po pętli masz w tablicyall_answers
wyłącznie identyczne wskaźniki do początku line, a wall_questions
masz wskaźniki w środek line.Najprostsze rozwiązanie to skopiować te łańcuchy:
all_questions[index] = strdup(question);
all_answers[index] = strdup(answer);
question[index] = malloc(100);
strncpy(question[index], buffer, 100);
To jest tylko wskaźnik na o jakieś miejsce w pamięci. Masz to niezainicjalizowane, więc wskazuje niewiadomo_gdzie.
@vytah: o to działa tak jak powinno. dzięki!
@pokazbobra: to nawet czaję
Powodzenia w nauce.