首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数的二维数组在C++中传递不正确

函数的二维数组在C++中传递不正确
EN

Stack Overflow用户
提问于 2020-03-04 20:51:59
回答 2查看 61关注 0票数 0

我一直在尝试将一个二维字符数组传递给c++中的一个函数,函数中接收到的参数只是随机字符串

代码语言:javascript
复制
void SomeFunction(char arr[][50])
{
   //arr is just random strings
}

int main()
{
  char arr[50][50] = { {"Hello"}, {"World"} };
  SomeFunction(arr);
}
EN

回答 2

Stack Overflow用户

发布于 2020-03-04 21:11:55

如上所述,您需要在读取数组值之前对其进行初始化。

代码语言:javascript
复制
void SomeFunction(char arr[][3])
{
   std::cout << arr[0][0];
}

int main()
{
  char arr[3][3] = {
      {'a', 'b', 'c'},
      {'d','e', 'f'},
      {'g', 'h', 'i'},
  };
  SomeFunction(arr);
}

在这个例子中,我在一条语句中初始化了所有的数组值,如果你没有初始化或赋值给一个指定的元素并试图访问它,就会发生一种未定义的行为,获取随机字符串可能会被垃圾放在你试图访问的内存位置。

票数 1
EN

Stack Overflow用户

发布于 2020-03-04 21:25:20

您首先需要初始化数组,然后通过函数传递它,否则它会像在您的例子中一样显示无用的值。请使用一些值初始化它,然后传递它。

初始化示例代码:

代码语言:javascript
复制
int x[3][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}};

每组内大括号代表一行。在上面的示例中,总共有三行,因此有三组内大括号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60526553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档