Dynamic allocation memory

5 отговора 175 прегледа
#1

Dynamic allocation memory

Na kwa zadacha popadnah:

"Da se napise programa na C, kojato da prawi rechnik na textow fail i da go izkarwa na ekrana.Chete se ot fail formatno (sus fscanf). Pametta da se zadelja dinamichno chrez malloc i realloc, srawnenie dali dumata ne se powtarja se prawi w pametta i rechnika se izkarwa na ekrana."

Az kakto go razbiram trebwa da imame samo edin fail, na koito prawim rechnik. Zadeljame pamet za wseka duma kojato ne se sresta weche w rechnika. Taka znachi ni trebwat edin ukazatel (kum porednata dumata) i edin dwoen ukazatel (kum wsjaka nowa duma) kum char. Otdeljame pamet za dwoinia ukazatel, otdeljame pamet za ukazatela kum porednata duma, prowerjawame dali suwpada s njakoja ot drugite dumi, i ako ne ja nasochwame kum swoboden dwoen ukazatel. Znachi tui kato chetem do krai na file imame zikul i trebwa da slagame realloc i za dwata ukazatela. Az pone zadeljam za dwoinia purwo dwa i gi prastam kum NULL, sled twa si praa srawnenieto dokato se srestne ukazatel kum NULL, i realloc-wam po edin koito susto zanuljawam. Taka winagi poslednia ukazatel ste sochi NULL (twa za da ne broija na druga promenliwa kwo i sto sum zadeljal). Sled twa printf e lesno. Izglezda obache burkam nekude i stawa boza.

Ako imate ideja za toa sluchai ili ste go srestali predi ste sum blagodaren da spodelite.

Отговор
в отговор на Zorko #2

Re: Dynamic allocation memory

Айде още едно домашно.
Предполагам в университет, а?

Отговор
в отговор на Zorko #3

Re: Dynamic allocation memory

от гледна точка на помощ, която би получил -- определено беше по-добре да беше постнал кода, вместо да правиш отговори на литературен въпрос с компютърни акроними. на мен например ми доскуча и не го дочетох. абе изобщо как очакваш някой да открие дефект с омазване на памет без да види код? предполагам, повечето хора тук си изхабяват ясновидските възможности през деня в офиса.

от гледна точка на това, че показваш, че си се потрудил и не постваш с идеята някой балък да ти напише домашното -- мога само да ти кажа браво.

третата гледна точка -- никой не ми е писал домашните по информатика. щом аз съм могъл да си ги напиша, значи всеки би могъл... стига да не го мързи де.

четвъртата -- скоро имаше въпрос тук от учител по информатика. какъв мислиш е шанса, твоя даскал да види темата, и после да познае решението ти. ами ако аз съм даскала ти по информатика ?!

някой сеща ли се за още?

ein heller Schein am Firmament
Отговор
в отговор на Meндeлeeв #4

Re: Dynamic allocation memory

Ili ako nakoi ti ja e dal taa zadacha kato nisto mozes da mu naprawis dosta mrusno. Dano daskala da ne se rowi iz toa forum...

Отговор
в отговор на BSG #5

Re: Dynamic allocation memory

>>Dano daskala da ne se rowi iz toa forum...

бих предпочел да се рови. някои хора трябва да се научат, че безплатен обяд няма

ein heller Schein am Firmament
Отговор
в отговор на Zorko #6

Re: Dynamic allocation memory

Това е задача за структури от данни, така че ако искаш да си направиш програмата като хората, трябва да имаш малко познания по структури от данни и алгоритми.

Направи си хеш таблица, в която да съхраняваш думите, или пък някаква хубава имплементация на сортиран списък, в случай, че ще трябва да ги изкарваш в лексикографски ред. Операциите по заделяне на паметта (и евентуални работи с указатели) ще засягат само имплементацията на хеш таблицата, така че направиш ли я да се държи стабилно, няма да имаш проблеми.

Хеш таблицата ще направи възможно бързо да разбереш дали дадена дума вече я имаш или не. Ще ти се налага да сравняваш стрингове само в случай на колизия.

Успех!

Отговор