ÇÁ·Î±×·¡¹Ö
ù ÆäÀÌÁö ·£´ý ±Û ȸ¿ø°¡ÀÔ ·Î±×ÀÎ
ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 01:46:13
URL https://te31.com/rgr/view.php?id=study&no=1756 ¸ð¹ÙÀÏ È­¸é
C ¾ð¾î Void ij½ºÆà ÈÄ ¸Þ¸ð¸® ÇØÁ¦

¶Ç C ¾ð¾î Áú¹®ÀÔ´Ï´Ù.
ÀÌ°Å Á¦´ë·Î ÀÛµ¿ÇÏ´Â °Å ¾Æ´ÏÁÒ? ÀÏ´Ü ¿¡·¯´Â ¾È³ª´Âµ¥...

float* tempF = (float*)malloc(20*sizeof(float));
void* tempV = (void*)float;
free(tempV);

Á¦ »ý°¢¿¡´Â free() ÇÔ¼ö¸¦ ¿ø·¡´ë·Î free(tempF)·Î ¾²¸é 4*20 = 80¹ÙÀÌÆ®¸¦ ÇØÁ¦ÇؾßÇϴµ¥
ij½ºÆà ÈÄÀÇ free() ÇÔ¼ö¸¦ À§¿¡Ã³·³ free(tempV)·Î ¾²¸é 1*20 = 20¹ÙÀÌÆ®¸¸ ÇØÁ¦Çϴ°Š°°Àºµ¥ ¸Â³ª¿ä?

¾Æ, ±×¸®°í size_t º¯¼öÇü ÀÚÁÖ ¾²½Ã³ª¿ä?

Áú¹® | 1539¸íÀÌ Àоú¾î¿ä. 3.144.48.135

0
1 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 02:22:38
free´Â ij½ºÆà ÇüŶû »ó°ü¾ø¾î¿©
size_t´Â Ç÷§Æû Á÷Á¢ ¸ÂÃ߱⠱ÍÂúÀ»¶§ ¾¹´Ï´Ù
2 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 09:32:01
free´Â ptr ŸÀÔÀÇ 4¹ÙÀÌÆ®(64ºñÆ® ¾ÆÅ°ÅØÃĸé 8¹ÙÀÌÆ®) °ª¸¸ ÀÎÀÚ·Î.¹Þ½À´Ï´Ù. Áï ´ä1ó·³ ¾Æ¹«»ó°ü¾øÀ½
3 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 13:12:16
À¸À½... ±×·±°Ç°¡¿ä?

https://github.com/json-c/json-c/blob/master/arraylist.h

¿©±â º¸½Ã¸é 20¶óÀο¡ Ä¿½ºÅÒ free ÇÔ¼ö¸¦ Æ÷ÀÎÅÍ·Î ¼±¾ðÇÏ´Â ºÎºÐÀÌ Àִµ¥ free ÇÔ¼ö¸¦ µû·Î ¸¸µå´Â ÀÌÀ¯´Â ¹º°¡¿ä? Àú°É·Î ¾Æ·¡ ±¸Á¶Ã¼ÀÇ ¸â¹öÀÎ void** arrayÀÇ °¢ Ç׸ñÀ» ÇØÁ¦Çϴµ¥ ¾²´øµ¥...
4 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 16:53:37
±¸±Û¸µÇÏ¸é ³ª¿ÃÅ×Áö¸¸..
¸Þ¸ð¸®ÇÒ´çÀ» Çϸé ÁÖ¼Ò¿Í »çÀÌÁ ½ÖÀ¸·Î °ü¸®ÇÕ´Ï´Ù. Æ÷ÀÎÅÍÀÇ Å¸ÀÔÀº ¸Þ¸ð¸®ÇØÁ¦½Ã ¿µÇâÀ» ÁÖÁö ¾Ê½À´Ï´Ù.
5 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 17:02:21
±×°Å´Â ´Ü¼ø free¸¦ ÇÒ ¼ö ¾ø´Â array_list ¶ó´Â ŸÀÔÀ» À§ÇÑ Ä¿½ºÅÒ ÇÔ¼öÁÒ.

struct array_list ³»¿¡ ptr ¸â¹ö°¡ À־ ±×·¸°Ô ÇÑ°Í °°³×¿ä.

array_list ¸¸ free Çعö¸®¸é ¸â¹öÀÇ ptrÀº ±×´ë·Î dangling pointer °¡ µÇ´Ï±î,

±×·¸´Ù°í Çؼ­ array_list ÀÇ ³»ºÎ¸¦ Ŭ¶óÀ̾ðÆ® Äڵ忡 ³ëÃâ½ÃÅ°±â ½È¾î¼­ Àü¿ë ÇÔ¼ö¸¦ ¸¸µç°É·Î »ý°¢ÇÕ´Ï´Ù

¾Æ½Ã´Ù½ÃÇÇ c ¿¡´Â oopÀÇ Ä¸½¶È­ °³³äÀº ¾øÁö¸¸ Àú·±°Ô ¾øÀ¸¸é free ½ÃÁ¡¿¡ struct array_list ÀÇ ³»¿ëÀ» µé¿©´Ù º¸°í array_list->array µîÀ» ³»°¡Á÷Á¢ free ÇØÁà¾ß Çϴϱî Â¥Áõ³ªÁÒ
6 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 17:34:52
¹è¿­ ÇϳªÇϳª¿¡ ÇÒ´çÇÒ°Å¸é ¹è¿­ ÇϳªÇϳª¸¦ ÇØÁ¦ÇØÁÖ°í ¹è¿­ Àüü Æ÷ÀÎÅ͸¦ ÇØÁ¦ÇØÁà¾ßÇÕ´Ï´Ù.
À­ºÐµé ¸»¸¶µû³ª ŸÀÔÀº ½Å°æ¾²Áö ¸¶¼¼¿ä

±×·¯´Ï±î À¥À» Çϼ¼¿ä (C/C++ Á¶»¤ °³¹ßÀÚ)
7 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-25 20:30:44
´äº¯µé °¨»çÇÕ´Ï´Ù. ±×·¡µµ Á¶±Ý ÀÌÇØ°¡ ¾ÈµÇ´Â ºÎºÐÀÌ Àִµ¥¿ä. À§ Çì´õ ÆÄÀÏ¿¡ ´ëÀÀÇÏ´Â ÄÚµå ÆÄÀÏ(https://github.com/json-c/json-c/blob/master/arraylist.c)À» º¸¸é

extern void
array_list_free(struct array_list *arr)
{
int i;
for(i = 0; i < arr->length; i++)
if(arr->array[i]) arr->free_fn(arr->array[i]);
free(arr->array);
free(arr);
}

ó·³ struct array_list ÇØÁ¦ ÇÔ¼ö°¡ ÀÛ¼ºµÇ¾î Àִµ¥¿ä. Á¦ Áú¹®ÀÇ Àǵµ´Â

arr->free_fn(arr->array[i]);

¿ä°É

free(arr->array[i]);

·Î ¹Ù²ãµµ ¹®Á¦°¡ ¾øÁö ¾Ê´À³Ä´Â °Å¿´¾î¿ä.


±Ùµ¥ Áö±Ý »ý°¢³­°Çµ¥, arr->array[i] ¾È¿¡ ¶Ç ¸â¹ö ptrÀÌ ÀÖÀ¸¸é free(arr->array[i])·Îµµ °ï¶õÇÏ°Ú±º¿ä......... ±×·¡¼­ »ç¿ëÀÚ°¡ Á÷Á¢ free ÇÔ¼ö¸¦ ÀÛ¼ºÇϵµ·Ï ÇÑ°Ç°¡¿ä?

ÀÏÇÏ½Å´Ù°í ¹Ù»Ú½Åµ¥ ´äº¯µé ´Þ¾ÆÁּż­ °¨»çÇÕ´Ï´Ù.
8 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-26 01:21:12
7 // ±×·¸½À´Ï´Ù
9 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-26 01:21:36
array ¾È¿¡ ¶Ç Æ÷ÀÎÅÍ µé¾î°¡¸é ±× ³»ºÎ±îÁø ¸ð¸£´Ï±î ÇØÁ¦ÇÔ¼öµµ °°ÀÌ ³Ö¾îÁÖ¶õ ÀǵµÁÒ
10 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-26 01:45:14
c·Îµµ template ó·³ ±¸ÇöÀÌ °¡´ÉÇϱº¿ä.
¸»¾¸Çϼ˴ٽÃÇÇ ¾î¶² ÀÚ·áÇüÀÇ µ¥ÀÌÅÍ°¡ µé¾î°¥Áö ¸ð¸£¹Ç·Î Á÷Á¢ ±¸ÇöÇϵµ·Ï ÇÑ°Å °°³×¿ä.
ÁÁÀº ÀÚ·á °¨»çÇÕ´Ï´Ù ÇìÇì
11 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-26 21:11:56
C¾ð¾î¸¦ °øºÎÇҰŸé TCPLÀ» ¹Ýµå½Ã °°ÀÌ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
¼­Á¡¿¡ äÀÌ´Â°Ô CÃ¥ÀÌÁö¸¸ ÀÔ¹®¿¡¸¸ Ä¡ÁßÇؼ­ ÇÙ½ÉÀ» ³õÄ¡´Â °æ¿ì°¡ ¼öµÎ·èÇÕ´Ï´Ù.

http://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628
https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf

185-188ÆäÀÌÁö malloc()¿Í free()ÀÇ ±¸Çö¿¹¸¦ º¸½Ã¸é Á¦´ë·Î ÀÌÇØ°¡ °¡´ÉÇÒ°Ì´Ï´Ù.
12 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-26 21:17:23
±×³É ¾²¸é µÇÁö ÀÌ·±°Å±îÁö ¾Ë¾Æ¾ßµÇ³Ä°í »ý°¢ÇÒ¼öµµ ÀÖÁö¸¸
CÀÇ Áß±Þ¾ð¾îÀûÀÎ ÀåÁ¡À» »ì¸®·Á¸é ½ÇÁ¦ ±¸Çö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ Áö½Ä Á¤µµ´Â ÀÖ¾î¾ßÇÕ´Ï´Ù
CÀÇ Áß±Þ¾ð¾îÀûÀÎ ÀåÁ¡ÀÌ ÇÊ¿ä¾ø´Ù¸é ±¦È÷ µð¹ö±ëÀ¸·Î °ùÅë¹ÞÁö ¸»°í °í±Þ¾ð¾î¸¦ ¾²´Â°Ô ¸Â±¸¿ä
13 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-03-27 11:44:47
»ç½Ç c++ÀÇ ÅÛÇø´À̶õ°Íµµ °á±¹ ±îº¸¸é void* Àå³­Áú..
´ñ±ÛÀ» ÀÛ¼ºÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
(±ÇÇÑÀÌ ¾ø´Â ȸ¿ø·¹º§)
¸ñ·ÏÀ¸·Î
ÀÌ¿ë¾à°ü | ±¤°í/Á¦ÈÞ | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | ¹®ÀÇ/½Å°í | ¸ð¹ÙÀÏ TE31 | ¼­¹ö ºÎÇÏ : 12.5%
½Ç½Ã°£ Issue Ä¿¹Â´ÏƼ TE31 [¾ËÁö·Õ] ¨Ï 2002-2024
TOP arrow_upward