如何从C中的函数返回2个昏暗的char数组

DCR

我有一些C代码可以用作:

int main(void)
{
   printf("Height: ");
   int height;
   do
   {
     height = get_int();
   } while (height < 0 || height > 23);

   char mtn[height][2*height+2];

   for(int i = 0;i <height+1;i++){
       for (int j = 0;j<2+height+3;j++){            
          mtn[i][j] = ' ';            
       }
   }    
}

但想使double for循环成为一个函数,例如:

char space_mtn(int height);
int main(void)
{
  printf("Height: ");
  int height;
  do
  {
    height = get_int();
  } while (height < 0 || height > 23);

  char mtn[height][2*height+2];
  strcpy(mtn,space_mtn(height);

}

char space_mtn(int height){
char mtn[height][2*height+2];
for(int i = 0;i <height+1;i++){
    for (int j = 0;j<2+height+3;j++){            
        mtn[i][j] = ' ';            
    }
}

}

但它不起作用。

毫米

数组不能通过C中的值返回。一种方法是将数组作为参数传递。(将数组参数调整为指针,使其看起来好像该数组已通过引用传递,因此该函数可以修改原始数组)。

void space_mtn(int height, char mtn[height][2*height+2])
{
    for(int i = 0;i < height;i++)
        for (int j = 0; j < 2*height+2 ;j++){           
            mtn[i][j] = ' ';            
}

int main(void)
{
    // ...
    char mtn[height][2*height+2];
    space_mtn(height, mtn);
}

注意,我调整了填充循环上的循环边界-它们是无用的和/或超出边界的。

同样,传递给函数的运行时数组当然没有可用的编译时边界检查-因此,您需要格外小心,以确保参数中的边界与传递的数组相匹配。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C中获取2个昏暗数组的行大小

来自分类Dev

如何在C / C ++函数中返回char *数组?

来自分类Dev

从C ++中的函数返回2D char数组并打印

来自分类Dev

在C函数中返回char数组

来自分类Dev

从C中的函数传递和返回2个数组

来自分类Dev

如何从C ++中的函数返回char *

来自分类Dev

如何使C ++函数返回char数组所有排列的向量

来自分类Dev

从C中的函数返回char数组的首选方法

来自分类Dev

在 C 函数中拆分 int 数组并返回 2 个不同的数组

来自分类Dev

在C中返回2d char数组

来自分类Dev

Java 2昏暗数组类

来自分类Dev

如何在C中传递函数多维char数组?

来自分类Dev

如何在C中传递函数多维char数组?

来自分类Dev

如何在函数(语言c)中获取char数组大小?

来自分类Dev

如何将char数组的值传递给C中另一个文件中的函数?

来自分类Dev

从C ++中的函数返回数组

来自分类Dev

从C ++中的函数返回数组

来自分类Dev

从C中的函数返回数组

来自分类Dev

从C ++中的函数返回数组

来自分类Dev

C ++函数返回两个char数组的相同索引元素

来自分类Dev

在函数中传递2d数组-从C中的函数返回2d数组

来自分类Dev

如何从C函数返回2D数组?

来自分类Dev

C#与C DLL互操作,如何编组从函数返回长度的char数组?

来自分类Dev

如何从C头文件中的函数返回多维字符数组

来自分类Dev

如何将数组从函数“返回”到c中的main

来自分类Dev

如何从C头文件中的函数返回多维字符数组

来自分类Dev

如何从C中的void函数返回动态数组?

来自分类Dev

如何从C中的函数返回指针结构数组

来自分类Dev

如何在函数中返回const char *?

Related 相关文章

热门标签

归档