指向指针错误的指针

名称http404

我正在使用2D数组,并尝试将其从一个函数传递给另一个函数。我在这里看到了有关此问题的所有答案,但似乎都没有答案。这是我试图实现的简单目标,但是答案很奇怪。

这是main():

int main(void)
{   
 int i=0,j=0,n=0,n2=0;    
 double **a, **a1, b=0; 

 printf("Enter 'n2' :");
 scanf("%d", &n2);


 a= makearray(n2);
 for(i=0; i < n2; i++){
     for(j=0; j < n2; j++){         
         a[i][j] = j;
         printf("%.f ",a[i][j]);
    }
     printf("\n");
  }

 printf("\n\n\n");

 for(i=0; i < n2; i++){ // print a
      for(j=0; j < n2; j++){
         b = a[i][j];
         printf("%.f ", b);
     }
     printf("\n");
 }

 printf("\n\n\n");
 return 0;
}  

函数makearray()仅返回指向作为参数传递的大小为2D数组的指针的指针。

makearray()是:

double** makearray(int n2)
{
int i=0;
double** a;

a = malloc(n2 * sizeof(int *));
if(a == NULL){
    fprintf(stderr, "out of memory\n");
    exit(0);
    }

for(i = 0; i < n2; i++){
    a[i] = malloc(n2 * sizeof(int));
    if(a[i] == NULL){
        fprintf(stderr, "out of memory\n");
        exit(0);
        }
    }

return a;

}

您可以输入'n2',其中(n2 x n2)成为矩阵大小,并且在n = 9时,输出为:

0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 8 

0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 0 1 2
0 1 2 3 4 5 6 7 8 

我没有以任何方式修改第一个数组,只是再次打印了一个,为什么这两个不同?

Dtor

在您的makearray中,malloc正在使用sizeof(int),但是您正在为doubles创建一个数组整数通常使用4 bytes,但是double使用8 bytes因此,您没有malloc为2维双精度数组分配足够的内存。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指向数组的指针错误

来自分类Dev

Pascal指向指针段错误的指针

来自分类Dev

指向函数错误的指针

来自分类Dev

指向对象错误的指针C ++

来自分类Dev

获取指向智能指针指向的对象的指针-Ivalue错误

来自分类Dev

获取指向智能指针指向的对象的指针-Ivalue错误

来自分类Dev

头指针指向指针

来自分类Dev

指向指针数组的指针

来自分类Dev

指向指针的头指针

来自分类Dev

指针指向

来自分类Dev

指向Objective-C中的错误指针的指针

来自分类Dev

指向指针的指针分配,然后迭代会导致分段错误

来自分类Dev

创建指向指针列表的指针时发生访问冲突错误

来自分类Dev

指向成员函数错误的指针

来自分类Dev

在Clang中使用指向成员的指针的错误

来自分类Dev

错误类型转换指向int的void指针

来自分类Dev

指向成员函数错误的指针

来自分类Dev

使用“&”创建指向成员错误的指针

来自分类Dev

Swift-指向指针的指针

来自分类Dev

这是指向指针的指针吗?

来自分类Dev

指针和指向指针的麻烦

来自分类Dev

指向数组中指针的指针

来自分类Dev

指向C ++中的指针的指针

来自分类Dev

指向函数指针数组的指针

来自分类Dev

指向int的指针的c ++指针

来自分类Dev

指向指针向量的指针数组

来自分类Dev

如何使用指向指针的指针

来自分类Dev

如何打印指向指针的指针

来自分类Dev

C - 指向指针数组的指针