#include "stdio.h"
#include "string.h"
void GetMemory1(char* p)
{
p = (char*)malloc(100);
}
void GetMemorySol1(char** p)
{
*p = (char*)malloc(100);
}
char* GetMemorySol2(char* p)
{
p = (char*)malloc(100);
return p;
}
char* GetMemory2()
{
char p[] = "hello world";
return p;
}
char* GetMemory3()
{
char* p = "hello world";
return p;
}
char* GetMemory4()
{
static char p[] = "hello world";
return p;
}
void test1(void)
{
char* str = NULL;
GetMemory1(str);
strcpy(str, "hello world");
printf(str);
}
void test1Sol(void)
{
char* str = NULL;
GetMemory1(&str);
strcpy(str, "hello world");
printf(str);
}
void test2(void)
{
char* str = NULL;
str = GetMemory2();
printf(str);
}
void test3() {
char* str = NULL;
str = GetMemory3();
printf(str);
}
void test4()
{
char* str = NULL;
str = GetMemory4();
printf(str);
}
void test5(void)
{
char* str = (char*)malloc(100);
strcpy(str, "hello");
free(str);
if (str != NULL)
{
strcpy(str, "world");
printf(str);
}
}
void test6()
{
char* str = (char*)malloc(100);
strcpy(str, "hello");
str += 6;
free(str);
if (str != NULL)
{
strcpy(str, "world");
printf(str);
}
}
int main()
{
test6();
return 0;
}