473,407 Members | 2,320 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,407 software developers and data experts.

Simple program big problem

Hi all
Ok in class to do we had to do the following and I keep on running into the same problem:
Expand|Select|Wrap|Line Numbers
  1. class Array
  2. {
  3. public:
  4.     Array(int size);         //constructor - sets capacity to size
  5.     void print();            //prints the contents of the Array
  6.     void add(int value);     //adds element to end of Array
  7.     ~Array();                //destructor
  8. private:
  9.     int length;                //number of elements
  10.     int capacity;            //size of internal array
  11.     int* list;                //pointer to internal array
  12.     void doubleCapacity();     //doubles the capacity
  13. };
  14.  
  15. int main()
  16. {
  17.     srand(time(NULL));
  18.  
  19.     Array* a2 = new Array(1);
  20.  
  21.     //do the following:
  22.  
  23.     //add 9 elements to a2
  24.     for(int index1 = 0 ; index1 < 10; index1++ )
  25.     {
  26.                  //This is where I hit the problem it jumps from here into add
  27.                 //then it runs into trouble
  28.                 a2->add(5);
  29.                }
  30.  
  31.     //    print a2
  32.     a2->print();
  33.     //    cleanup
  34.     delete a2;
  35.  
  36.     system("pause");
  37.     return 0;
  38. }
  39.  
  40. Array::Array(int size) : capacity(size), length(0)
  41. {
  42.     int *list = new int[capacity];
  43. }
  44.  
  45. void Array::print()
  46. {
  47.  
  48.     for(int i = 0; i < length; i++)
  49.     {
  50.         cout << list[i] << ", ";
  51.     }
  52.     cout << endl;
  53.  
  54. }
  55. void Array::add(int value)
  56. {
  57.     if(length < capacity)
  58.     {
  59.         list[length] = value;
  60.         length++;
  61.     }
  62.     else
  63.     {
  64.         doubleCapacity();
  65.         list[length] = value;
  66.         length++;
  67.     }
  68. }
  69. Array::~Array()
  70. {
  71.     delete [] list;
  72.     list = NULL;
  73.  
  74. }
  75. void Array::doubleCapacity()
  76. {
  77.  
  78.     int oldcapacity = capacity;
  79.  
  80.     capacity *= 2;
  81.  
  82.     int* temp= new int[capacity];
  83.  
  84.     for(int index = 0; index < oldcapacity; index++)
  85.     {
  86.         temp[index] = list[index];
  87.     }
  88.  
  89.     delete [] list;
  90.     list = temp;
  91. }
/after I jump into a2->add(temp) i get an access violation.
Any help would be great
Mar 27 '07 #1
1 1312
svlsr2000
181 Expert 100+
Hi all
Ok in class to do we had to do the following and I keep on running into the same problem:
class Array
{
public:
Array(int size); //constructor - sets capacity to size
void print(); //prints the contents of the Array
void add(int value); //adds element to end of Array
~Array(); //destructor
private:
int length; //number of elements
int capacity; //size of internal array
int* list; //pointer to internal array
void doubleCapacity(); //doubles the capacity
};

int main()
{
srand(time(NULL));

Array* a2 = new Array(1);

//do the following:

//add 9 elements to a2
for(int index1 = 0 ; index1 < 10; index1++ )
{
//This is where I hit the problem it jumps from here into add
//then it runs into trouble
a2->add(5);
}

// print a2
a2->print();
// cleanup
delete a2;

system("pause");
return 0;
}

Array::Array(int size) : capacity(size), length(0)
{
int *list = new int[capacity];
}

void Array::print()
{

for(int i = 0; i < length; i++)
{
cout << list[i] << ", ";
}
cout << endl;

}
void Array::add(int value)
{
if(length < capacity)
{
list[length] = value;
length++;
}
else
{
doubleCapacity();
list[length] = value;
length++;
}
}
Array::~Array()
{
delete [] list;
list = NULL;

}
void Array::doubleCapacity()
{

int oldcapacity = capacity;

capacity *= 2;

int* temp= new int[capacity];

for(int index = 0; index < oldcapacity; index++)
{
temp[index] = list[index];
}

delete [] list;
list = temp;
}
/after I jump into a2->add(temp) i get an access violation.
Any help would be great
Here the problem is with constructor, its creating a local variable by name list and it initializes it. "ITS NOT INITIALIZING THE LIST IE VARIABLE IN CLASS".
Mar 27 '07 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

38
by: jrlen balane | last post by:
basically what the code does is transmit data to a hardware and then receive data that the hardware will transmit. import serial import string import time from struct import * ser =...
31
by: da Vinci | last post by:
OK, this has got to be a simple one and yet I cannot find the answer in my textbook. How can I get a simple pause after an output line, that simply waits for any key to be pressed to move on? ...
3
by: Patchwork | last post by:
Hi Everyone, Please take a look at the following (simple and fun) program: //////////////////////////////////////////////////////////////////////////// ///////////// // Monster Munch, example...
17
by: savesdeday | last post by:
In my beginnning computer science class we were asked to translate a simple interest problem. We are expected to write an algorithm that gets values for the starting account balance B, annual...
5
by: Rob Somers | last post by:
Hey all I am writing a program to keep track of expenses and so on - it is not a school project, I am learning C as a hobby - At any rate, I am new to structs and reading and writing to files,...
11
by: juvenuts | last post by:
Hi, I'm a complete newbie to C, but I wanted to get started by writing a few simple programs that print out strings. 1. The first thing I wanted to do was write a program that uses getchar to...
2
by: Vitali Gontsharuk | last post by:
Hi! I have a problem programming a simple client-server game, which is called pingpong ;-) The final program will first be started as a server (nr. 2) and then as a client. The client then...
30
by: galiorenye | last post by:
Hi, Given this code: A** ppA = new A*; A *pA = NULL; for(int i = 0; i < 10; ++i) { pA = ppA; //do something with pA
1
by: astrogirl77 | last post by:
I'm new to C++ and am hoping to find help with coding a simple C program, am wanting to obtain code and functioning exe's. I code in an old version of Visual Basic 4.0, I have a simple app that...
17
by: Chris M. Thomasson | last post by:
I use the following technique in all of my C++ projects; here is the example code with error checking omitted for brevity: _________________________________________________________________ /*...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.