在C中释放双指针

用户名

我有两个创建数组的函数。

double *Array1D (int nx, int dsize) {
  double *v;
  v = calloc(nx, dsize);
  return v;
}

double **Array2D (int ny, int nx, int dsize) {
  double **v; int j;
  for (j = 0; j < ny; j++)
    v[j] = Array1D(nx, dsize);
  return v;
}

int i, j;
pn = Array2D (ny, nx, sizeof(double));
for (j = 0; j < ny; j++)
  for (i = 0; i < nx; i++)
    pn[j][i] = 1.0 + (i + j * nx) * 1.0;

for (i = 0; i < ny; i++)
  free(pn[i]);
free(pn);

数组元素已正确初始化,但释放它们会产生分段错误。

错误:

*** glibc detected *** ./array_test: free(): invalid pointer: 0x00007fff00d42a4f ***
Segmentation fault (core dumped)
double **Array2D (int ny, int nx, int dsize)
{
  double **v; int j;
  for (j=0; j<ny; j++) v[j] = Array1D(nx, dsize);

v 对象永远不会在您的函数中初始化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在c中释放双指针的干净方法

来自分类Dev

无法释放双指针

来自分类Dev

C ++中的双指针数组

来自分类Dev

如何释放内存到C中的指针

来自分类Dev

正确释放双指针到结构的方法

来自分类Dev

来自c中的双指针的Memcpy

来自分类Dev

在C中类型转换双指针

来自分类Dev

双指针作为C中的参数

来自分类Dev

在 C 中连接双指针字符数组

来自分类Dev

C ++双指针转换

来自分类Dev

C ++双指针多态

来自分类Dev

目标c中的悬空指针-nil是否还会释放内存?

来自分类Dev

当指针未知时,如何释放C中的内存?

来自分类Dev

我是否需要/可以在C中释放空指针?

来自分类Dev

释放char数组中的指针后,C程序崩溃*

来自分类Dev

从C中的双指针数组中删除一行?

来自分类Dev

c - 如何对c中的双指针进行字母排序?

来自分类Dev

C ++:释放的指针未分配

来自分类Dev

释放分配有双指针的结构数组

来自分类Dev

通过C中的双指针访问结构元素

来自分类Dev

Swift为C中定义的结构定义双指针

来自分类Dev

如何在C中嵌套无结构的双指针?

来自分类Dev

如何使用双指针在C中操纵数组?

来自分类Dev

在Swift 5中访问C双指针数组(**条目)

来自分类Dev

Swift为C中定义的结构定义双指针

来自分类Dev

ARC中的双指针问题

来自分类Dev

C ++双指针成员访问

来自分类Dev

指针C ++的双链表实现

来自分类Dev

将单指针和双指针传递给C中的函数