如何把在子函数中用malloc开辟的空间传回主函数?
我将指针传给子函数,但却没有将开辟的空间地址带回到主函数
时间太久了,还是回答一下,给后面搜索这个问题的朋友们一个借鉴 void example(double *&p, int len) { p=(double*)malloc(sizeof(double)*len); return; } void main() {double* p=nullptr; int len = 100; example(p,len); free(p); p=nullptr; return; }
如果你传的是指针,那么可以通过return 传回主函数,如果你不想使用return ,那你需要传一个二级指针(即 getmemory(&指针变量)),在memory中 指针变量=melloc();
个人理解,仅供参考
malloc返回的是函数指针。你直接返回这个指针就可以了。
如果是在参数中,那么看你的参数有没有加上引用符号。&
可以通过返回值啊。。。
“如何把在子函数中用malloc开辟的空间传回主函数?
我将指针传给子函数,但却没有将开辟的空间地址带回到主函数”
第一句我看懂了,第二句没有看懂。
你到底是想再子函数中开辟空间,然后把空间地址传回主函数。还是想把一个地址传给子函数,再传回主函数??