函数传递动态内存
函数传递动态内存
问题
1 | void GetMemory(char *p, int num) |
运行时报错 str 为 NULL。
函数中的参数p是复制原有指针的值,而不是原来的指针,所以即使p重新指向新的地址,但原来的指针指向的地址仍然不变。
解决
应该采用二级指针。传递str的地址给函数。
1 | void GetMemory(char **p, int num) |
或者可以改成用函数返回值来传递动态内存。
1 | char* GetMemory(char *p, int num) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Star!