• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 248
  • Last Modified:

C++, array of pointers to objects

Hello experts, please have a look at the code below:

#include <iostream>
using namespace std;

class Dog{
public:
	int x;

};

int main(){
	Dog * matrix[12];
	int * matrixInt[12];

	*matrixInt[0] = 12; //works fine
	*matrix[0]->x = 12; //does not work

	return 0;
}

Open in new window


How can I make it work?
Thank you

panJames
0
panJames
Asked:
panJames
1 Solution
 
ZoppoCommented:
Hi panJames,

you're declaring array to pointers, but the pointers are uninitialized. You need to allocate memory for them, i.e.:
Dog* matrix[12];
for ( int i = 0; i < 12; i++ )
{
 matrix[i] = new Dog;
}
...
// need to clean up when you don't need it anymore.
for ( int i = 0; i < 12; i++ )
{
 delete matrix[i];
}

Open in new window

(do it similar for the matrixInt)

Hope this helps,

ZOPPO
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now