我一直在尝试将一个二维字符数组传递给c++中的一个函数,函数中接收到的参数只是随机字符串
void SomeFunction(char arr[][50])
{
//arr is just random strings
}
int main()
{
char arr[50][50] = { {"Hello"}, {"World"} };
SomeFunction(arr);
}发布于 2020-03-04 21:11:55
如上所述,您需要在读取数组值之前对其进行初始化。
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);
}在这个例子中,我在一条语句中初始化了所有的数组值,如果你没有初始化或赋值给一个指定的元素并试图访问它,就会发生一种未定义的行为,获取随机字符串可能会被垃圾放在你试图访问的内存位置。
发布于 2020-03-04 21:25:20
您首先需要初始化数组,然后通过函数传递它,否则它会像在您的例子中一样显示无用的值。请使用一些值初始化它,然后传递它。
初始化示例代码:
int x[3][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}};每组内大括号代表一行。在上面的示例中,总共有三行,因此有三组内大括号。
https://stackoverflow.com/questions/60526553
复制相似问题