Hi,
I want to make a global 2D array ( i mean outside of the main function), so it will be available from all the functions.
But my problem is how can i read it's size from the keyboard?
If anyone know, plz help me.

Thanks in advance.

Recommended Answers

All 5 Replies

if u want 2 create a static array, u have make the array dimension known at the compile time. so u have no option to take the size from user.

his is only possible by means of dynamic array.

u may be needing sth like this....

#include <iostream>
using namespace std;

int *arr[2];

int main() {
    int x;
    cout<<"Enter size of each 1D array : ";
    cin>>x;
    arr[0]= new int[x];
    arr[1]= new int[x];

    arr[0][2]=100;
    cout<<arr[0][2]<<endl;

    //at the end
    delete[] arr[0];
    delete[] arr[1];
    return 0;
}

Or attempt a design where it is created in main() and passed into the functions that require it.

And that code will only work if the user enters a 'x' of 3 or greater.

I have concerns related to this (it's probably nothing though):

//at the end
    delete[] arr[0];
    delete[] arr[1];

I'm not too sure it will work correctly.

Reason:
Since an array technically is just a pointer to the first element of the array, won't you lose access to your whole array if you do delete[] arr[0]; first? Shouldn't you delete[] arr[1]; first so that you don't lose your pointer? Or am I missing something?

EDIT:
Wait a minute. I was thinking on it more. Will these lines just clear the contents of arr[0] and arr[1] and not touch arr itself?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.