分析一下这段代码
(null)/n
答案:程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险
图上的指针问题如何解决?
#include
#include
void Getmemory(char **p)
{
*p = (char *)malloc(100);
strcpy(*p, "12345679");
}
int main()
{
char *str = NULL;
Getmemory(&str);
printf("str = %s /n", str);
getchar();
free(str);
return 0;
}
大家帮忙下看,指针初学,遇到问题,其中的
printf ("%s/n",str);
其中的 "/n“是什么意思,压根没有见过
首先/n估计是写错了,应该是\n,
c中指针有一句话叫做,如果要修改实参,形参要用指针,如果实参是指针,则形参要用指针的指针。
你这错误在于没有搞懂指针的本质,以及c中参数传递的实质。。
指针本质还是一个变量,只不过存放的是内存地址,而c不论怎么传参实质都是传值,都会开辟一个临时变量,相当于你把str的值赋值给p,然后你对p的值修改了,但根本不会影响原来str的值