¹Ø¿¡ free ¿¡¼ Àڲ٠ƨ°Ü¹ö¸®´Âµ¥ ¹¹°¡ ¹®Á¦Àΰǰ¡¿ä ¤Ð¤Ð
ptrArr[0]ÀÌ printf·Î Ãâ·ÂÀÌ µÇ¸éÀº ÇØÁ¦µµ °¡´ÉÇÑ°Å ¾Æ´Ñ°¡¿ä?
---------------------------
// Æ÷ÀÎÅÍ ¹è¿À» »ç¿ëÇÏ¿© ¹è¿ ÇÑÄÇÑÄ ¸¶´Ù µ¿Àû ¸Þ¸ð¸® ÇÒ´çÇÏ¿© ¹®ÀÚ¿À» ³Ö´Â ¿¬½À
// ¸ñÇ¥. ¹®ÀÚ¿À» ÀÔ·ÂÇÏ¸é ±âÁ¸ÀÇ ¹®ÀÚ¿À» 10ÁÙ ±îÁö º¸Á¸ÇÏ¸ç »õ·Î¿î ¹®ÀÚ¿À» °è¼Ó Ãß°¡ÇØ ³ª°¡´Â
// ¸¶Ä¡ °ÔÀÓÀÇ Ã¤ÆÃâ°ú °°Àº°É ¸¸µé¾î º¸°íÀÚ ÇÔ.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>
int main(void)
{
char* ptrArr[10];
char* bufChar = (char*)malloc(sizeof(char) * 128);
int charLen = 0;
int arrIdx = 0;
while (1)
{
gets_s(bufChar, 128); // Á¶°Ç. ÃÖÃÊ ÀԷ½ÿ¡¸¸ »ç¿ë ÇÒ ±ä ¹öÆÛ (128ÀÚ) Â¥¸®¸¦ µÎ°í ¿©±â·Î ÀÔ·Â ¹ÞÀ½.
system("cls");
// Á¶°Ç. 10 ¹ø ÀÌ»óÀÇ ÀÔ·ÂÀ» ¹ÞÀ¸¸é °¡Àå À§ÀÇ ¹®ÀÚ¿ ºÎÅÍ »èÁ¦ÇÑ´Ù. ½ºÅ©·ÑÀÌ µÇ´Â µí ó·³.
if (arrIdx > 9)
{
arrIdx--;
free(ptrArr[0]);
for (int i = 0; i < 9; i++)
{
ptrArr[i] = ptrArr[i + 1];
}
}
// Á¶°Ç. ÀԷ¹ÞÀº ±ÛÀÚÀÇ ±æÀ̸¸Å µ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ »ý¼ºÇÏ¿© º¹»ç ÈÄ µî·Ï - ¸Þ¸ð¸® Àý¾à
charLen = strlen(bufChar);
ptrArr[arrIdx] = (char*)malloc(charLen * (sizeof(char)));
strcpy(ptrArr[arrIdx], bufChar);
for (int i = 0; i < arrIdx + 1; i++)
{
printf("%sn", ptrArr[i]);
}
arrIdx++;
}
return 0;
}
Áú¹® | 1507¸íÀÌ Àоú¾î¿ä. 3.133.128.145