#include <iostream>
using namespace std;
//apply memories in a function.
void GetMemory(char ** p )
{
*p = (char*)malloc(10);
}
/**
* p will be free after GetMemory2 invoked.
*/
char *GetMemory2(void)
{
char p[] = "hello world";
return p;
}
/**
* write a function which concat a string to another string without using system library
*/
char * strconcat(char * destStr,const char * srcStr)
{
char * header = destStr;
while( *destStr !='/0')
{
destStr++;
}
while(*srcStr !='/0')
{
*destStr++ = *srcStr++;
}
*destStr = '/0';
return header;
}
int main()
{
//1./*
char * p = NULL;
GetMemory(&p);
strcpy(p,"Hello");
cout<<p<<endl;
free(p);
//2.
char * p2 = NULL;
p2 = GetMemory2();
strcpy(p2,"Hello");
cout<<p2<<endl;
//3.
char * str = (char*)malloc(sizeof(100));
free(str);
if(str != NULL)
{
strcpy(str,"world");
cout <<str<<endl;
}
//4.
char str1[15] = "Hello";
char * str2 = "World";
strconcat(str1,str2);
cout<<str1<<endl;
return 0;
}