小编Yas*_*ash的帖子

如何获得双指针指向的2D数组的大小?

我试图从指向数组的双指针获取2D数组的行数和列数.

#include <stdio.h>
#include <stdlib.h>

void get_details(int **a)
{
 int row =  ???     // how get no. of rows
 int column = ???  //  how get no. of columns
 printf("\n\n%d - %d", row,column);
}
Run Code Online (Sandbox Code Playgroud)

上面的功能需要打印大小的细节,哪里出错了.

int main(int argc, char *argv[])
{
 int n = atoi(argv[1]),i,j;
 int **a =(int **)malloc(n*sizeof(int *)); // using a double pointer
 for(i=0;i<n;i++)
   a[i] = (int *)malloc(n*sizeof(int));
 printf("\nEnter %d Elements",n*n);
 for(i=0;i<n;i++)
  for(j=0;j<n;j++)
  {
   printf("\nEnter Element %dx%d : ",i,j);
   scanf("%d",&a[i][j]);
  }
 get_details(a);
 return 0;
 }
Run Code Online (Sandbox Code Playgroud)

我正在使用malloc来创建数组.


如果我使用这样的东西怎么办?

column …

c double-pointer multidimensional-array pointer-to-array

5
推荐指数
1
解决办法
9512
查看次数

需要摆脱memset警告

如果我编译下面的代码,我会收到这样的警告:

警告:内置函数memset的不兼容隐式声明[默认启用]

void transform(int **a, int m, int n)
{
    int *row = malloc(m*sizeof(int));
    int *col = malloc(n*sizeof(int));
    memset(row, 0, sizeof(row));
    memset(col, 0, sizeof(col));
    [...]
Run Code Online (Sandbox Code Playgroud)

c warnings memset

1
推荐指数
1
解决办法
5393
查看次数