【发布时间】:2017-12-05 21:28:33
【问题描述】:
我创建并分配了一个这样的双指针:
int **a;
a = (int**)malloc(10 * sizeof(int *));
for (int i = 0; i < 10; i++)
*(a+i) = (int *)malloc(10 * sizeof(int));
然后我像这样初始化它:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
**a = 1;
(*a)++;
}
a++;
}
我的问题和疑问是如何保存双指针的地址?此时我丢失了它们,不能再使用它们了。
【问题讨论】:
-
原地址在
a-10。 -
别惹
a。只需使用a[i][j] = ...分配给它; -
在 C 语言中,不要将调用结果转换为
malloc()、realloc()或calloc()- 这是不必要的,并且可能会隐藏缺少原型的严重错误。
标签: c pointers double-pointer