c语言关于指针传递的问题?

Python014

c语言关于指针传递的问题?,第1张

void getmemory(char **p)

{

*p=(char *) malloc(100)//str = p ,给p赋予分配地址和空间,不就是相当于给str

strcpy(*p,“hello world”)//赋予分配地址和空间,为什么会有问题呢??

}

int main( )

{

char *str=NULL//str就是指针,但是空指针

getmemory(&str)

printf(“%s/n”,str)

free(str)

return 0

}

c语言中指针即地址,地址的传值可以引起参数的变化。

比如:

&x,

&y是取这两个变量的地址,作用空间在main函数里。然后函数调用把这两个变量的地址传递到函数myadd中,在函数中的*a和*b分别是引用地址指向的变量值,等于是取到了x,y本身的值。在myadd中直接操作*a可以改变x的值。

通俗来说因为&x,&y表示的是x,y的地址。所以传递的是地址。意思就是说,函数可以通过地址引用变量。