2016-11-23 12 views
-2

ご覧のとおり、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

'配列[I] [J]'。その多次元配列です。多次元的な位置を参照する必要があります。 'std :: cout'の周りに追加のforloopを置くことで、配列全体を繰り返し処理することができます。 – g19fanatic

答えて

1

あなたの配列Danielは、2次元配列であるので、あなたは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()機能ではなくvoidintを返すので、それの終わりにint main()return 0;void main()を変更する必要があります。

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; 
} 
関連する問題