Re: [so] [SO][Tema1][General] Abstractizare hashtable
Mulțumesc pentru răspunsuri. Am găsit un articol[1] în care se prezintă niște workaround-uri pentru (unele din) problemele cauzate de variadic functions, dar toate au și puncte contra și par în general tricky . Teodora [1] https://snai.pe/c/preprocessor/varargs/ 2018-03-14 0:04 GMT+02:00 Adrian Șendroiu: > >> De asemenea, mai mult o curiozitate. Sunt funcțiile cu număr variabil de > >> parametri de obicei good/bad practice? > > > > > > Bad practice. Pe lângă faptul că este ineficient dpdv memorie și > procesare, > > este și foarte greu de urmărit și debugat. > > Pe lângă asta, compilatorul nu poate să facă nici măcar o minimă > verificare de tipuri la compilare (cum se face la funcțiile > obișnuite). > > În momentul în care o funcție e declarată cu număr variabil de > parametri, poți s-o apelezi cu 10 int-uri, sau 10 float-uri, sau 10 > pointeri, orice. Compilatorul n-are de unde să știe ce urmează să facă > funcția cu respectivele argumente. > ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
[so] [SO][Tema1][Windows-Vmchecker]
Salut, Am o problema legata de rularea temei pe Windows. Se pare ca executabilul pentru windows ruleaza la infinit fara sa afiseze ceva(cod de eroare sau macar "Seg fault"). Aceasta problema apare si pe Vmchecker si cand incerc sa rulez local pe masina de Windows. Am aceasta problema fie ca incerc sa rulez pe rand cate un test fie ca rulez checkerul. Pe Linux, tema ia punctaj maxim atat local cat si pe Vmchecker. Imi poate cineva da o sugestie in legatura cu acest comportament nedefinit al executabilului? Multumesc, Alexandru-Mihai Stroie ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Re: [so] [SO][Tema1][General] Abstractizare hashtable
>> De asemenea, mai mult o curiozitate. Sunt funcțiile cu număr variabil de >> parametri de obicei good/bad practice? > > > Bad practice. Pe lângă faptul că este ineficient dpdv memorie și procesare, > este și foarte greu de urmărit și debugat. Pe lângă asta, compilatorul nu poate să facă nici măcar o minimă verificare de tipuri la compilare (cum se face la funcțiile obișnuite). În momentul în care o funcție e declarată cu număr variabil de parametri, poți s-o apelezi cu 10 int-uri, sau 10 float-uri, sau 10 pointeri, orice. Compilatorul n-are de unde să știe ce urmează să facă funcția cu respectivele argumente. ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Re: [so] [SO][Tema1][General] Abstractizare hashtable
On Tue, Mar 13, 2018 at 11:05 PM Teodora Serbanescu via so < so@cursuri.cs.pub.ro> wrote: > Bună seara, > > Am o întrebare legată de una din precizările de la depunctări, care nu imi > este foarte clară: > "implementare netransparentă a hashtable-ului; operațiile pe hashtable nu > abstractizează implementarea lui: nu există o abstractizare a obiectului > hashtable sau operații clare asupra acestuia" > Implementarea voastră trebuie să abstractizeze hashtable-ul ca un singur obiect, pe care să-l pasați funcțiilor voastre. Dacă implementarea voastră pasează spre exemplu de fiecare dată un vector de bucket-uri și un size, atunci nu este corect. > În implementarea mea am folosit funcții cu număr variabil de parametri, > astfel nefiind foarte clar modul de apelare al acestora doar din antetul > funcției. În acest caz, se poate spune că nu se respectă condiția de mai > sus sau "operații clare asupra acestuia" se referă strict la implementarea > lor? > Nu cred că o implementare cu funcții cu număr variabil de parametri este în regulă, nu văd de ce ai avea nevoie de așa ceva la tema asta (în afară de printf). Din păcate nu am acces acum la tema ta (fep-ul este picat)[*] și nu pot să-ți dau un răspuns sigur acum, dar îți sugerez să scapi de funcțiile respective, sau să le păstrezi decât dacă nu se poate altfel. De asemenea, mai mult o curiozitate. Sunt funcțiile cu număr variabil de > parametri de obicei good/bad practice? > Bad practice. Pe lângă faptul că este ineficient dpdv memorie și procesare, este și foarte greu de urmărit și debugat. [*] Ăsta este unul din motivele pentru care vă sugerăm să faceti tema pe gitlab, pentru ca noi să avem acces mai ușor la codul vostru, să vă putem ajuta. Numai bine, Răzvan ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Re: [so] [Tema1][General] Eroare coding style
Încearcă să folosești sub Linux utilitarul dos2unix pe toate sursele și zi-mi dacă mai apar erorile Aparent ai editat sub Windows și a rămas totul cu CRLF și checkpatch.pl se supără la astfel de line endings. Asta-i viața, ne supunem regulilor din coding style d kernel On Mar 13, 2018 23:02, "Ileana Popescu via so"wrote: > Buna, > Cand rulez tema pe vmchecker primesc aceste erori de coding style: > > ERROR:DOS_LINE_ENDINGS: DOS line ending > > WARNING:MISSING_EOF_NEWLINE: adding a line without newline at end of file > > Pe local ele nu apar. Imi puteti spune ce trebuie sa fac pentru a le rezolva ? > > > > > > ___ > http://ocw.cs.pub.ro/courses/so/info/lista-discutii > ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
[so] [Tema1][General] Eroare coding style
Buna, Cand rulez tema pe vmchecker primesc aceste erori de coding style: ERROR:DOS_LINE_ENDINGS: DOS line ending WARNING:MISSING_EOF_NEWLINE: adding a line without newline at end of filePe local ele nu apar. Imi puteti spune ce trebuie sa fac pentru a le rezolva ? ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
[so] [SO] [Tema1] Warning compilare Windows
Salut, Din cauza ca folosesc functie strdup primesc warning la compilare: “ warning C4996: ‘strdup’: The POSIX name for this item is deprecated. Instead use the ISO C++, conformant name : _strdup. See online help for help for details”. Tin se precizez ca folosesc flag-ul /D_CRT_SECURE_NO_DEPRECATE. Am cautat online si am gasit ca pot sa folosesc flag-ul de compilare /D_CRT_NONSTDC_NO_DEPRECATE. Avem voie sa folosim flag-ul acesta sau nu avem voie sa folosim strdup in tema? Mihaila Alin ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Re: [so] [SO] [Tema1] Warning compilare Windows
Am uitat sa mentionez, e interzisa folosirea flag-ului D_CRT_NONSTDC_NO_DEPRECATE :) n-ai voie functii POSIX specifice in ANSI-C On 13 March 2018 at 14:39, Mihai Barbulescuwrote: > Salut, > > S-a mai discutat pe lista, vezi [1] si raspunsurile date acolo > > [1] https://www.mail-archive.com/search?q=strdup=so%40cursuri.cs.pub.ro > > 2018-03-13 13:31 GMT+02:00 Flavia Circiumaru via so : >> Buna, >> >> In cazul in care raspunsul la intrebarea ta este negativ, ai putea >> implementa tu functia strdup ca sa scapi de warning. Eu asa am procedat. >> >> Spor! >> >> Pe 13 mar. 2018 13:16, "M. Alin via so" a scris: >>> >>> Salut, >>> >>> >>> >>> Din cauza ca folosesc functia strdup, primesc warning la compilare: “ >>> warning C4996: ‘strdup’: The POSIX name for this item is deprecated. Instead >>> use the ISO C++, conformant name : _strdup. See online help for help for >>> details”. Tin se precizez ca folosesc flag-ul /D_CRT_SECURE_NO_DEPRECATE. >>> >>> >>> >>> Am cautat online si am gasit ca pot sa folosesc flag-ul de compilare >>> /D_CRT_NONSTDC_NO_DEPRECATE. >>> >>> >>> >>> Avem voie sa folosim flag-ul acesta sau nu avem voie sa folosim strdup in >>> tema? >>> >>> >>> >>> >>> >>> Mihaila Alin >>> >>> >>> >>> >>> ___ >>> http://ocw.cs.pub.ro/courses/so/info/lista-discutii >> >> >> ___ >> http://ocw.cs.pub.ro/courses/so/info/lista-discutii > > > > -- > Cu stimă, > Mihai Bărbulescu -- Cu stimă, Mihai Bărbulescu ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Re: [so] [SO] [Tema1] Warning compilare Windows
Salut, S-a mai discutat pe lista, vezi [1] si raspunsurile date acolo [1] https://www.mail-archive.com/search?q=strdup=so%40cursuri.cs.pub.ro 2018-03-13 13:31 GMT+02:00 Flavia Circiumaru via so: > Buna, > > In cazul in care raspunsul la intrebarea ta este negativ, ai putea > implementa tu functia strdup ca sa scapi de warning. Eu asa am procedat. > > Spor! > > Pe 13 mar. 2018 13:16, "M. Alin via so" a scris: >> >> Salut, >> >> >> >> Din cauza ca folosesc functia strdup, primesc warning la compilare: “ >> warning C4996: ‘strdup’: The POSIX name for this item is deprecated. Instead >> use the ISO C++, conformant name : _strdup. See online help for help for >> details”. Tin se precizez ca folosesc flag-ul /D_CRT_SECURE_NO_DEPRECATE. >> >> >> >> Am cautat online si am gasit ca pot sa folosesc flag-ul de compilare >> /D_CRT_NONSTDC_NO_DEPRECATE. >> >> >> >> Avem voie sa folosim flag-ul acesta sau nu avem voie sa folosim strdup in >> tema? >> >> >> >> >> >> Mihaila Alin >> >> >> >> >> ___ >> http://ocw.cs.pub.ro/courses/so/info/lista-discutii > > > ___ > http://ocw.cs.pub.ro/courses/so/info/lista-discutii -- Cu stimă, Mihai Bărbulescu ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
Re: [so] [SO] [Tema1] Warning compilare Windows
Buna, In cazul in care raspunsul la intrebarea ta este negativ, ai putea implementa tu functia strdup ca sa scapi de warning. Eu asa am procedat. Spor! Pe 13 mar. 2018 13:16, "M. Alin via so"a scris: > Salut, > > > > Din cauza ca folosesc functia strdup, primesc warning la compilare: “ > warning C4996: ‘strdup’: The POSIX name for this item is deprecated. > Instead use the ISO C++, conformant name : _*strdup. See online help for > help for details”. Tin se precizez ca folosesc flag-ul /D* > _CRT_SECURE_NO_DEPRECATE. > > > > Am cautat online si am gasit ca pot sa folosesc flag-ul de compilare > /D_CRT_NONSTDC_NO_DEPRECATE. > > > > Avem voie sa folosim flag-ul acesta sau nu avem voie sa folosim strdup in > tema? > > > > > > Mihaila Alin > > > > ___ > http://ocw.cs.pub.ro/courses/so/info/lista-discutii > ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
[so] [SO] [Tema1] Warning compilare Windows
Salut, Din cauza ca folosesc functia strdup, primesc warning la compilare: “ warning C4996: ‘strdup’: The POSIX name for this item is deprecated. Instead use the ISO C++, conformant name : _strdup. See online help for help for details”. Tin se precizez ca folosesc flag-ul /D_CRT_SECURE_NO_DEPRECATE. Am cautat online si am gasit ca pot sa folosesc flag-ul de compilare /D_CRT_NONSTDC_NO_DEPRECATE. Avem voie sa folosim flag-ul acesta sau nu avem voie sa folosim strdup in tema? Mihaila Alin ___ http://ocw.cs.pub.ro/courses/so/info/lista-discutii