Dynamiczne tablice w C

0

Witam

Poniżej znajduje się kod w PHP, który wczytuje liczby z pliku tekstowego do tablicy. Plik file.txt zawiera kilka linii liczb całkowitych. Potrzebuję napisać coś podobnego w języku C. Wyczytałem że w C tablice dynamiczne tworzy się z wykorzystaniem funkcji malloc.

Wynikało by z tego że aby utworzyć taką tablicę muszę najpierw otworzyć plik, w pętli odczytać ilość linii, następnie wywołać funkcję malloc z argumentem "ilość linii * sizeof(int)" a potem znowu otworzyć plik i w drugiej pętli wczytać liczby do tablicy.

Czy moje rozumowanie jest poprawne? Wydaje mi się że powyższe rozwiązanie jest trochę kulawe.. Czy nie dało by się tego zrobić w lepszy sposób, bardziej zbliżony do tego w PHP?

Z góry dzięki za wskazówki.

<?php

$a = array();

$fh = fopen("file.txt", "r");
while(!feof($fh)) $a[] = fgets($fh);
fclose($fh);

print_r($a);
?>
0

poczytaj o funkcij calloc ;)

0

Do calloc też muszę najpierw mieć ilość linii w pliku...
W php to napisać takie coś to jest 10 sekund a w C siedzę już ponad godzinę. Masakra co za język 8-O

0

Ale po co ci znać liczbę linii w pliku? W PHP masz jakąś samorozrzerzalną tablicę (no, ściślej mówiąc tam trzymane są hasztablice, ale w tym momencie ich nie potrzebujemy), zrób to samo w C. Przeczytaj linię, jeśli nie masz już w tablicy miejsca to ją powiększ, a potem dopisz element.

Aha - C to jest przenośny makroasembler, nie za dużo od niego wymagasz?

0

A co za problem odczytać ilość linii?
Użyj while, getline() i jednej zmiennej int.

0
adam.chyla napisał(a)

getline()
W C?

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