´Ù¾çÇÑ Æ÷ÀÎÅÍ È°¿ë ¿¹Á¦µé
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 ¿©·¯°¡Áö Æ÷ÀÎÅÍ ¿¹Á¦
2 ±¸Á¶Ã¼ º¯¼ö »ç¿ë ¿¹Á¦ 1
3 ±¸Á¶Ã¼ º¯¼ö »ç¿ë ¿¹Á¦ 2
4 ±¸Á¶Ã¼ º¯¼ö »ç¿ë ¿¹Á¦ 3
5 ±¸Á¶Ã¼ Æ÷ÀÎÅÍ º¯¼ö »ç¿ë ¿¹Á¦ 1
6 ±¸Á¶Ã¼ Æ÷ÀÎÅÍ º¯¼ö »ç¿ë ¿¹Á¦ 2
7 ÇÔ¼ö Æ÷ÀÎÅÍ ¿¹Á¦ 1
8 ÇÔ¼ö Æ÷ÀÎÅÍ ¿¹Á¦ 2
9 ÇÔ¼ö Æ÷ÀÎÅÍ ¿¹Á¦ 3
10 °á ·Ð
11 Âü°í¹®Çå


1 ¿©·¯°¡Áö Æ÷ÀÎÅÍ ¿¹Á¦


ÀÛ¼ºÀÚ: mwyun (¸Û)
  • Á÷Á¢ ÁÖ¼®À» ´Þ¸é¼­ ÀÐ¾î º¸¼¼¿ä ÀÌÇØÇϴµ¥ ¸¹Àº µµ¿òÀÌ µÉ°Ì´Ï´Ù. - yundream

2 ±¸Á¶Ã¼ º¯¼ö »ç¿ë ¿¹Á¦ 1


#include <stdio.h> 
#include <string.h> 
 
struct data { 
    int a; 
    char *b; 
}; 
 
int main() 
{ 
    struct data aData; 
 
    aData.a = 100; 
    aData.b = (char *)malloc(10); 
    strcpy(aData.b, "mwyun"); 
 
    printf("aData.a=%d\n", aData.a); 
    printf("aData.b=%s\n", aData.b); 
 
    free(aData.b); 
 
    return 0; 
} 
 

3 ±¸Á¶Ã¼ º¯¼ö »ç¿ë ¿¹Á¦ 2


#include <stdio.h> 
#include <string.h> 
 
struct data { 
    int a; 
    char *b; 
}; 
 
void SetData(struct data *pData) 
{ 
    pData->a = 100; 
    pData->b = (char *)malloc(10); 
    strcpy(pData->b, "mwyun"); 
} 
 
int main() 
{ 
    struct data aData; 
 
    SetData(&aData); 
 
    printf("aData.a=%d\n", aData.a); 
    printf("aData.b=%s\n", aData.b); 
 
    free(aData.b); 
 
    return 0; 
} 
 


4 ±¸Á¶Ã¼ º¯¼ö »ç¿ë ¿¹Á¦ 3


#include <stdio.h> 
#include <string.h> 
 
struct data { 
    int a; 
    char *b; 
}; 
 
const char *str = "Hello, Joinc!"; 
 
void SetData(struct data *pData) 
{ 
    pData->a = 100; 
    pData->b = str; // <- ÁÖ¸ñ! 
} 
 
int main() 
{ 
    struct data aData; 
 
    SetData(&aData); 
 
    printf("aData.a=%d\n", aData.a); 
    printf("aData.b=%s\n", aData.b); 
 
    return 0; 
} 
 

5 ±¸Á¶Ã¼ Æ÷ÀÎÅÍ º¯¼ö »ç¿ë ¿¹Á¦ 1


#include <stdio.h> 
#include <string.h> 
 
struct data { 
    int a; 
    char *b; 
}; 
 
int main() 
{ 
    struct data *pData; 
 
    pData = (struct data *)malloc(sizeof(struct data)); 
 
    pData->a = 100; 
    pData->b = (char *)malloc(10); 
    strcpy(pData->b, "mwyun"); 
 
    printf("pData->a=%d\n", pData->a); 
    printf("pData->b=%s\n", pData->b); 
 
    free(pData->b); 
    free(pData); 
 
    return 0; 
} 
 

6 ±¸Á¶Ã¼ Æ÷ÀÎÅÍ º¯¼ö »ç¿ë ¿¹Á¦ 2


#include <stdio.h> 
#include <string.h> 
 
struct data { 
    int a; 
    char *b; 
}; 
 
void SetData(struct data *pData) 
{ 
    pData->a = 100; 
    pData->b = (char *)malloc(10); 
    strcpy(pData->b, "mwyun"); 
} 
 
int main() 
{ 
    struct data *pData; 
 
    pData = (struct data *)malloc(sizeof(struct data)); 
 
    SetData(pData); 
 
    printf("pData->a=%d\n", pData->a); 
    printf("pData->b=%s\n", pData->b); 
 
    free(pData->b); 
    free(pData); 
 
    return 0; 
} 
 

7 ÇÔ¼ö Æ÷ÀÎÅÍ ¿¹Á¦ 1


#include <stdio.h> 
#include <string.h> 
 
struct data { 
    int Id; 
    char *Name; 
    void (*SetName)(struct data *pData, char *NewName); 
    char *(*GetName)(struct data *pData); 
    void (*Clear)(struct data *pData); 
}; 
 
void SetName(struct data *pData, char *NewName) 
{ 
    if (pData->Name) 
    { 
        if (strlen(pData->Name) < strlen(NewName)) 
        { 
            free(pData->Name); 
            pData->Name = (char *)malloc(strlen(NewName)+1);     
        } 
    } 
    else 
    { 
        pData->Name = (char *)malloc(strlen(NewName)+1); 
    } 
     
    strcpy(pData->Name, NewName); 
} 
 
char *GetName(struct data *pData) 
{ 
    if (pData->Name) 
        return pData->Name; 
    else 
        return NULL; 
} 
 
void Clear(struct data *pData) 
{ 
    pData->Id = 0; 
    if (pData->Name) 
    { 
        free(pData->Name); 
        pData->Name = NULL; 
    } 
    pData->GetName = NULL; 
    pData->SetName = NULL; 
    pData->Clear = NULL; 
} 
 
int main() 
{ 
    struct data aData; 
 
        memset((void *)&aData, 0x00, sizeof(struct data)); 
    aData.Id = 100; 
    aData.GetName = GetName; 
    aData.SetName = SetName; 
    aData.Clear = Clear; 
 
    printf("aData.Id=%d\n", aData.Id); 
    aData.SetName(&aData, "mwyun"); 
    printf("aData.Name=%s\n", aData.GetName(&aData)); 
    aData.Clear(&aData); 
 
    return 0; 
} 
 


8 ÇÔ¼ö Æ÷ÀÎÅÍ ¿¹Á¦ 2


#include <stdio.h> 
#include <string.h> 
 
struct data { 
    int Id; 
    char *Name; 
    void (*SetName)(struct data *pData, char *NewName); 
    char *(*GetName)(struct data *pData); 
    void (*Clear)(struct data *pData); 
}; 
 
void SetName(struct data *pData, char *NewName) 
{ 
    if (pData->Name) 
    { 
        if (strlen(pData->Name) < strlen(NewName)) 
        { 
            free(pData->Name); 
            pData->Name = (char *)malloc(strlen(NewName)+1);     
        } 
    } 
    else 
    { 
        pData->Name = (char *)malloc(strlen(NewName)+1); 
    } 
     
    strcpy(pData->Name, NewName); 
} 
 
char *GetName(struct data *pData) 
{ 
    if (pData->Name) 
        return pData->Name; 
    else 
        return NULL; 
} 
 
void Clear(struct data *pData) 
{ 
    pData->Id = 0; 
    if (pData->Name) 
    { 
        free(pData->Name); 
        pData->Name = NULL; 
    } 
    pData->GetName = NULL; 
    pData->SetName = NULL; 
    pData->Clear = NULL; 
} 
 
int main() 
{ 
    struct data *pData; 
 
    pData = (struct data *)malloc(sizeof(struct data)); 
 
    pData->Id = 100; 
    pData->GetName = GetName; 
    pData->SetName = SetName; 
    pData->Clear = Clear; 
 
    printf("pData->Id=%d\n", pData->Id); 
    pData->SetName(pData, "mwyun"); 
    printf("pData->Name=%s\n", pData->GetName(pData)); 
    pData->Clear(pData); 
 
    free(pData); 
 
    return 0; 
} 
 

9 ÇÔ¼ö Æ÷ÀÎÅÍ ¿¹Á¦ 3


#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
 
struct data { 
    int Id; 
    char *Name; 
    void (*SetName)(struct data *pData, char *NewName); 
    char *(*GetName)(struct data *pData); 
    void (*Print)(struct data *pData); 
    void (*Clear)(struct data *pData); 
}; 
 
void SetName(struct data *pData, char *NewName) 
{ 
    if (!pData) 
        return; 
 
    if (pData->Name) 
    { 
        if (strlen(pData->Name) < strlen(NewName)) 
        { 
            free(pData->Name); 
            pData->Name = (char *)malloc(strlen(NewName)+1);     
        } 
    } 
 
    else 
    { 
        pData->Name = (char *)malloc(strlen(NewName)+1); 
    } 
 
    strcpy(pData->Name, NewName); 
} 
 
char *GetName(struct data *pData) 
{ 
    if (!pData) 
        return NULL; 
 
    if (pData->Name) 
        return pData->Name; 
    else 
        return NULL; 
 
} 
 
void Clear(struct data *pData) 
{ 
    if (!pData) 
        return; 
 
    pData->Id = 0; 
    if (pData->Name) 
    { 
 
        free(pData->Name); 
        pData->Name = NULL; 
    } 
 
    pData->GetName = NULL; 
    pData->SetName = NULL; 
    pData->Clear = NULL; 
} 
 
void Print(struct data *pData) 
{ 
    if (!pData) 
        return; 
 
    printf("pData->Id=%d\n", pData->Id); 
    printf("pData->Name=%s\n", pData->GetName(pData)); 
} 
 
struct data *Create(int Id, char *Name) 
{ 
    struct data *pData; 
 
    pData = (struct data *)malloc(sizeof(struct data)); 
 
    if (!pData) 
        return NULL; 
 
         // ÇÔ¼öÀÇ ½ÃÀÛ ÁÖ¼Ò¸¦ ÀúÀå 
    pData->GetName = GetName;  
    pData->SetName = SetName; 
    pData->Print = Print; 
    pData->Clear = Clear; 
 
    pData->Id = Id; 
    pData->SetName(pData, Name); 
 
    return pData; 
} 
 
void Destroy(struct data *pData) 
{ 
    if (!pData) 
        return; 
 
    pData->Clear(pData); 
    free(pData); 
 
    pData = NULL; 
} 
 
int main(int argc, char **argv) 
{ 
    struct data *pData; 
 
    if (argc != 3) 
        return -1; 
 
    pData = Create(atoi(argv[1]), argv[2]); 
    pData->Print(pData); 
    Destroy(pData); 
 
    return 0; 
} 
 

10 °á ·Ð


ÁÖ¼®Àº ÃÖ´ëÇÑ ÀÚÁ¦Çß½À´Ï´Ù. ±¸Á¶Ã¼ º¯¼ö³ª ±¸Á¶Ã¼ Æ÷ÀÎÅÍ º¯¼ö ¿¹Á¦¸¦ ÅëÇØ¼­ Æ÷ÀÎÅ͸¦ ÅëÇÑ ÂüÁ¶ ¹æ½Ä¿¡ ´ëÇØ¼­ ÀÌÇØÇϽñ⠹ٸ³´Ï´Ù.

°£´ÜÇÑ ÇÔ¼ö Æ÷ÀÎÅÍ ¿¹Á¦¸¦ ÅëÇØ¼­ ÇÔ¼ö Æ÷ÀÎÅ͸¦ ¾î¶»°Ô ¾²´ÂÁö ÀÌÇØÇϽñ⠹ٶø´Ï´Ù.

11 Âü°í¹®Çå

ÇÔ¼öÆ÷ÀÎÅÍÀÇ »ç¿ë


CategoryLanguage CategoryC
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.