We help IT Professionals succeed at work.

Dynamically sized multidimensional arrays

Reil
Reil asked
on
Medium Priority
268 Views
Last Modified: 2009-12-16
I'd like to know how to initialise multidimensional arrays using CArray in VC++.
The solutions I've come up with look quite messy and not very elegant.
Comment
Watch Question

Commented:
They are automatically initialized.  What are you asking?

Author

Commented:
Md, you're probably talking about one-dimensional dynamic arrays. They are not a problem, using CArray. But as soon as you need another dimension it becomes tricky, I think.
Commented:
The output of the following code shows that just creating the arrays and allocating memory is enough to initialise the array.
Hope this is of help.

struct myInt{
      int i;
      myInt() { i = 5; }
};

void SomeFunc()
{
      typedef CArray<myInt, myInt&> intArray;

      CArray<intArray, intArray&> array;

      array.SetSize(5);
      for (int i = 0; i < 5; i++) {
            array[i].SetSize(5);
            for (int j = 0; j < 5; j++)
            printf("%d\n", array[i][j].i);
      }
}

Output:
5
5
5
5
5
5
5
5
5
5
5
5
5
5
...

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.