正如你所看到的,我正在尝试打印出一个2D数组,但它打印出奇怪的内存地址!有任何想法吗 !我是c ++的新手!
#include <iostream>
#include <string>
#include <Windows.h>
#include <cstdlib>
#include <ctime>
void display(int array[2][10], int size);
void main() {
SetConsoleTitleA("Random Number generator!");
system("Color 3F");
int Daniel[2][10] = { {20, 32, 43, 2, 5, 4, 3, 2 ,4 ,33}, {23, 54, 2, 5,3,3,6,3,65,3} };
display(Daniel, 7);
}
void display(int array[2][10], int size) {
for (int i = 0; i < size; i++) {
std::cout << array[i] << std::endl;
Sleep(1000);
}
}
答案 0 :(得分:1)
您的数组Daniel
是二维数组,因此如果您尝试打印array[i]
,它会打印一个地址。如果要打印数组的内容,应该这样做:
void display(int array[2][10]) {
for (int i = 0; i < 2; i++) {
for(int j = 0; j < 10; j++)
std::cout << array[i][j] << std::endl;
}
此外,您的main()
函数应返回int
而不是void
,因此请将void main()
更改为int main()
,并将return 0;
更改为它
答案 1 :(得分:1)
传递数组以及行数和列数:
#include <iostream>
void displayArray(int a[][10], size_t numRows, size_t numColumns)
{
for (size_t i = 0; i < numRows; i++){
for (size_t j = 0; j < numColumns; j++){
std::cout << a[i][j] << ' ';
}
std::cout << std::endl;
}
}
int main(){
int Daniel[2][10] = { { 20, 32, 43, 2, 5, 4, 3, 2, 4, 33 }, { 23, 54, 2, 5, 3, 3, 6, 3, 65, 3 } };
displayArray(Daniel, 2, 10);
return 0;
}