我试图弄清楚如何在函数中分配一块内存并通过其中一个参数传回指向该块的指针。这是一个 C 程序。我似乎遇到了一些麻烦。这是代码:
void foo(char *ptr)
{
if (!(ptr = malloc(size)))
printf("error");
/* code here */
printf("buffer address: %i\n", (int)buffer);
}
int main()
{
char *ptr;
ptr = NULL;
foo(ptr);
printf("buffer address: %i\n", (int)buffer);
}
结果是:
buffer address: 142385160
buffer address: 0
但我期待的是:
buffer address: 142385160
buffer address: 142385160
我究竟做错了什么?