求教,子程序中为动态二维数组分配的内存,如何在主程序中销毁
主程序中有一个二级指针**a,子程序my_alloc为其分配内存,然后再在主程序中free分配的内存,如下:程序代码:
#include <stdio.h> #include <stdlib.h> void my_alloc(double **a) { int i; a = malloc(sizeof(double) * 10); for (i = 0; i < 10; i++) a[i] = malloc(sizeof(double) * 20); } int main(void) { int i; double **a; my_alloc(a); puts("allocate memory ok"); for (i = 0; i < 10; i++) free(a[i]); free(a); puts("release memory ok"); return EXIT_SUCCESS; }该程序会在运行到free(a[i])提示段错误。
请问,这是什么原因,我该如何做才能在主程序中销毁a的内存。
[ 本帖最后由 hchuan 于 2013-8-31 20:38 编辑 ]