Dynamic allocation memory
5 отговора
175 прегледа
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.
"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.
Re: Dynamic allocation memory
от гледна точка на помощ, която би получил -- определено беше по-добре да беше постнал кода, вместо да правиш отговори на литературен въпрос с компютърни акроними. на мен например ми доскуча и не го дочетох. абе изобщо как очакваш някой да открие дефект с омазване на памет без да види код? предполагам, повечето хора тук си изхабяват ясновидските възможности през деня в офиса.
от гледна точка на това, че показваш, че си се потрудил и не постваш с идеята някой балък да ти напише домашното -- мога само да ти кажа браво.
третата гледна точка -- никой не ми е писал домашните по информатика. щом аз съм могъл да си ги напиша, значи всеки би могъл... стига да не го мързи де.
четвъртата -- скоро имаше въпрос тук от учител по информатика. какъв мислиш е шанса, твоя даскал да види темата, и после да познае решението ти. ами ако аз съм даскала ти по информатика
?!
някой сеща ли се за още?
ein heller Schein am Firmament
от гледна точка на това, че показваш, че си се потрудил и не постваш с идеята някой балък да ти напише домашното -- мога само да ти кажа браво.
третата гледна точка -- никой не ми е писал домашните по информатика. щом аз съм могъл да си ги напиша, значи всеки би могъл... стига да не го мързи де.
четвъртата -- скоро имаше въпрос тук от учител по информатика. какъв мислиш е шанса, твоя даскал да види темата, и после да познае решението ти. ами ако аз съм даскала ти по информатика
някой сеща ли се за още?
ein heller Schein am Firmament
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...
Re: Dynamic allocation memory
>>Dano daskala da ne se rowi iz toa forum...
бих предпочел да се рови. някои хора трябва да се научат, че безплатен обяд няма
ein heller Schein am Firmament
бих предпочел да се рови. някои хора трябва да се научат, че безплатен обяд няма
ein heller Schein am Firmament
Re: Dynamic allocation memory
Това е задача за структури от данни, така че ако искаш да си направиш програмата като хората, трябва да имаш малко познания по структури от данни и алгоритми.
Направи си хеш таблица, в която да съхраняваш думите, или пък някаква хубава имплементация на сортиран списък, в случай, че ще трябва да ги изкарваш в лексикографски ред. Операциите по заделяне на паметта (и евентуални работи с указатели) ще засягат само имплементацията на хеш таблицата, така че направиш ли я да се държи стабилно, няма да имаш проблеми.
Хеш таблицата ще направи възможно бързо да разбереш дали дадена дума вече я имаш или не. Ще ти се налага да сравняваш стрингове само в случай на колизия.
Успех!
Направи си хеш таблица, в която да съхраняваш думите, или пък някаква хубава имплементация на сортиран списък, в случай, че ще трябва да ги изкарваш в лексикографски ред. Операциите по заделяне на паметта (и евентуални работи с указатели) ще засягат само имплементацията на хеш таблицата, така че направиш ли я да се държи стабилно, няма да имаш проблеми.
Хеш таблицата ще направи възможно бързо да разбереш дали дадена дума вече я имаш или не. Ще ти се налага да сравняваш стрингове само в случай на колизия.
Успех!