ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 ¿©·¯°¡Áö Æ÷ÀÎÅÍ ¿¹Á¦
ÀÛ¼ºÀÚ: mwyun (¸Û)
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;
}
|
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|