c语言中的函数传值有关问题

c语言中的函数传值问题
我在编程时遇到的一个问题,那就是c语言中向函数传值。形参得到是传进去值的副本,当函数调用完成后,形参变量的空间就被释放了,所以函数调用前后变量值都没有改变。现在我想让传递的值改变。我的程序如下:

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void GameTest(char* p)
{
p= (char*)malloc(sizeof(char)*100);
}

int _tmain(int argc, _TCHAR* argv[])
{
char* str=NULL;
GameTest(str);
strcpy(str,"HelloWorld");
printf("%s/n",str);
return 0;
}

如何对GameTest修改使str能够获得100个空间并输出HelloWorld呢?
------解决方案--------------------
传指针的指针。
------解决方案--------------------
指针也是变量,要修改“普通”变量,那么传变量的指针;
要修改指针,那么就传指针的指针。