Fri Feb 23 2007 10:30, Alexey V Bugrov wrote to Yuriy K:
YK>> éÓÐÏÌØÚÏ×ÁÎÉÅ ÄÉÎÁÍÉÞÅÓËÏÊ ÐÁÍÑÔÉ × ÂÏÌÅÅ-ÍÅÎÅÅ ÏÔ×ÅÔÓÔ×ÅÎÎÙÈ ÓÉÓÔÅÍÁÈ YK>> ÎÁÄÏ ÚÁÐÒÅÝÁÔØ ÎÁ...
YK>> MISRA C Rule 20.4 (required): Dynamic heap memory allocation YK>> shall not be used.
YK>> [Unspecified 19; Undefined 91, 92; Implementation 69; Koenig 32] YK>> This precludes the use of the functions calloc, malloc, realloc and YK>> free. There is a whole range of unspecified, undefined and YK>> implementation-defined behaviour associated with dynamic memory YK>> allocation, as well as a number of other potential pitfalls. Dynamic YK>> heap memory allocation may lead to memory leaks, data inconsistency, YK>> memory exhaustion, non-deterministic behaviour. Note that some YK>> implementations may use dynamic heap memory allocation to implement YK>> other functions (for example functions in the library string.h). If YK>> this is the case then these functions shall also be avoided.
AVB> òÁÚÕÍÎÏÅ ÚÅÒÎÏ ÅÓÔØ, ÎÏ ÎÁÐÉÓÁÎÏ ÞÅÒÅÚ ÞÕÒ ÐÁÒÁÎÏÉÄÁÌØÎÏ. ó ÔÁËÉÍ AVB> ÐÏÄÈÏÄÏÍ ÎÅÌØÚÑ ×ÏÏÂÝÅ ÎÉËÁËÉÅ ÓÒÅÄÓÔ×Á ÑÚÙËÁ ó É ÔÅÍ ÂÏÌÅÅ ïó AVB> ÉÓÐÏÌØÚÏ×ÁÔØ, Ô.Ë. ÞÒÅ×ÁÔÏ "...unspecified, undefined and AVB> implementation-defined behaviour..." AVB> É "...a number of other potential pitfalls".
MISRA C ËÁË ÒÁÚ É ÒÁÓÓÞÉÔÁÎÁ ÎÁ ÐÁÒÁÎÏÉËÏ×. BTW ÐÒÏÇÎÁ× ÏÄÉÎ ÉÚ ÐÒÏÅËÔÏ× ÞÅÒÅÚ IAR MISRA checker, ÎÁÛÅÌ ÐÁÒÕ-ÔÒÏÊËÕ ÓËÏÌØÚËÉÈ ÍÏÍÅÎÔÏ×.
èÏÔÑ ÎÁÄÏ ÐÒÉÚÎÁÔØ, ÞÔÏ ×ÙÐÏÌÎÑÔØ ×ÓÅ "required" ÐÒÁ×ÉÌÁ ÎÅÒÅÁÌØÎÏ.
AVB> HÁ ÓÁÍÏÍ ÄÅÌÅ ÅÓÔØ ÄÏÓÔÁÔÏÞÎÏ ÞÅÔËÁÑ ÔÅÏÒÉÑ (ÅÓÌÉ ÍÏÖÎÏ ÔÁË ÓËÁÚÁÔØ :) AVB> ÉÓÐÏÌØÚÏ×ÁÎÉÑ É ÍÅÎÅÄÖÍÅÎÔÁ ÄÉÎÁÍÉÞÅÓËÏÊ ÐÁÍÑÔÉ. ðÒÉ ×ÙÐÏÌÎÅÎÉÉ ÒÑÄÁ AVB> ÕÓÌÏ×ÉÊ ÎÉ ÕÔÅÞËÉ, ÎÉ ÆÒÁÇÍÅÎÔÁÃÉÑ ÎÅ ÂÕÄÕÔ ÉÍÅÔØ ÍÅÓÔÏ. ïÄÎÏ ÉÚ AVB> ËÌÀÞÅ×ÙÈ ÕÓÌÏ×ÉÊ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÂßÅÍÁ ÄÉÎÁÍÉÞÅÓËÏÊ ÐÁÍÑÔÉ ÎÅ ÂÏÌÅÅ AVB> ÏÐÒÅÄÅÌÅÎÎÏÇÏ ÏÂßÅÍÁ (× % ÏÔ ÄÏÓÔÕÐÎÏÇÏ) É ×ÙÄÅÌÅÎÉÅ ÂÌÏËÏ× ËÒÁÔÎÏÇÏ AVB> ÏÂßÅÍÁ ÎÁ ÏÄÉÎ ÚÁÐÒÏÓ (Ó ÏÇÒÁÎÉÞÅÎÉÅÍ ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÏÇÏ ÒÁÚÍÅÒÁ AVB> ÂÌÏËÁ). äÌÑ ÐÕÝÅÊ Õ×ÅÒÅÎÎÏÓÔÉ malloc/free ÄÏÌÖÎÙ ÂÙÔØ ÓÁÍÏÐÉÓÎÙÅ (Ô.Å. AVB> ÉÓÐÏÌØÚÏ×ÁÔØ ÉÚ×ÅÓÔÎÙÅ ÁÌÇÏÒÉÔÍÙ).
ôÏ ÅÓÔØ ÎÁÐÉÓÁÔØ Ó×ÏÊ ÍÅÎÅÄÖÅÒ ÐÁÍÑÔÉ, ÂÅÚ ÎÅÏÐÒÅÄÅÌÅÎÎÏÇÏ ÐÏ×ÅÄÅÎÉÑ. óÏÂÓÔ×ÅÎÎÏ Ï ÞÅÍ É ÒÅÞØ.
"Liberalism is a mental disorder"