引言
最近碰到几道很有必要一提的试题,这里记录一下,主要是关于指针的一些理解。
实例
下面将试题附上:
例1
void GetMemory(char **p,int num)
{
*p = (char*)malloc(num);
}
void test()
{
char *str = NULL;
GetMemory(&str,100);
strcpy(str,"hello");
printf(str);
}
会问输出为什么结果。正确的答案是hello,这道题主要考查的是指针作为参数的传递,也是二级指针的理解,这里直接将指针str的地址传递到GetMemory函数中,故而申请了100个字节的内存,让str指针指向这块内存区域,然后往str指针指向的内存写入字符串hello,最后输出str指向的内存的内容hello。
例2
void test1()
{