C++ :: Dynamically Resizing Array While Program Is Running?
Feb 4, 2015
I'm working the 4th problem in chapter 14 of the Jumping into C++ book. In the book, he gives an example program for dynamically resizing an array while the program is running. It works fine for integer types but i need to do the same with a string type array. Right now my program is crashing because the string array is not resizing itself. Here's the part of the code im trying to figure out. The part for the int array has been ignored using // since it works fine and I'm trying to figure out whats wrong with the string array.
Code:
#include <iostream>
#include <string>
//Write a program that lets users keep track of the last time they talked to each of their friends.
//Users should be able to add new friends (as many as they want!) and store the number of days ago
void resize() { int* resize_arr = new int[size + 1];
[Code] ....
i came across this code to dynamically resize an array...and here in the last statement they have deleted resize_arr.As resize_arr and arr points to samething...i think that memory that arr pointing to is also deleted...i guess correct thing would be delete [] arr....before we assign resize_arr pointer to arr...!! i am new to c++...
The plan is to add a new method 'resize' where a new array will copy the contents of the first original array and modify the already existing 'add' method to call 'resize' when necessary.
Up till now, in the constructor I created the new array, should I give the array a default value?
since I didn't know how to type epsilon symbol temporarily I am using ^
char prod[20][20],T[20],NT[20],c[10][10],foll[10][10],fir[10][10]; int tt,tnt,tp,a; int follow[20][20],first[20][20]; void first_of(char); int count(int j); void rhs(int j);
i created a windows service that will run another program. but the program i want to run has a gui and i don't want the gui to be visible, i just want the program to run in the background.
But i have to do it without editing the gui program
i tested this code with notepad and it runs notepad in the background without displaying the window but when i try run my program it doesn't work. i don't know why its works for one program and not the other..
I'm trying extremely hard to understand pointers and I have the basic concept down.. I feel as though my knowledge of dynamically allocated pointers and pointers in general is not enough to understand the logic behind what I'm trying to do. The problem is that the donations array must be able to accept any number of donations. I've made it do just that, but there is also an array of pointers which must each point to the same element in the donations array. The program works if I assign int *arrPtr[100] for example, but it does not work if I try to dynamically allocate it to accept the same number of elements for donations entered by the user. Here it's the snippet
#include <iostream> using namespace std; //Function Prototypes
The assignment is to write a program that statistically computes similarity of C syntax with another program; a same and a different. The one used here is in C language, it's called Battleship.cpp. The program must open a file and read line by line for keywords and then produce statistics. The reason my code is not running is the fopen function is failing and it goes to return -1. I am using MS Visual Studio 2013 and there are no compiler errors after turning off deprecation. I do see, however, this error UMEngx86.dll'. Cannot find or open the PDB file. The file being opened is in my source folder.
The program is not showing my full menu just the 0 Exit and the last line of text. This is the full main source file (not implementation file or header file).
I have a class which dynamically allocates memory for three data arrays, and as such in the destructor I told it to delete those data arrays.
However, when I've created a new class, and inherited the previous class - it will always crash AFTER running the program, unless I don't have the previous destructor present.
I keep getting the same error messages every time on Visual Studio. I don't know where the error is originating. Basically I'm trying to convert an infix expression (A+B-C) to a postfix expression (AB+C-) using stacks.
Giving a dynamic array, we want to pass the array elements from a file. The first number in the file N gives us the array length. They follow N numbers, the actual elements of the array.
Three brothers are going to work in the shop of their father for a time. The shop is doing well and every day generates profit which the three brothers may provide. The brothers agreed that they would divide the total time in three successive parts, not necessarily equal duration, and that each one will be working in the shop during one of these parts and collects the corresponding profit on his behalf. But they want to make a deal fairly, so that one received from three more profit someone else. Specifically, they want to minimize the profit the most favored of the three will receive.
I first created a program that WORKS! with complexity O(n3).
#include <stdio.h> #include <stdlib.h> #include <limits.h> int sum_array(int* array, int cnt){ int res = 0; int i; for ( i = 0; i < cnt ; ++i)
[Code] .....
Let's assume that we have the following input:
10
1 1 8 1 1 3 4 9 5 2
The ouptut should be 15 -> A = 1 + 1 + 8 + 1 + 1 + 3 = 15 , B = 4 + 9 = 13 , C = 5 + 2 = 7.
But the ouptut is 16!
How can I reduce the complexity of my first working! C code?
I have written a program which uses a pid to check if the process is currently running and return a value based on the system call result.But the program core dumps
Code:
#include <stdio.h> #include <string.h int main( argc, argv ) int argc; char * argv[]; { int p_pid = 99; char buff[1000]; }
[code]....
What is the mistake in this code and is it portable in both unix/linux , is the method secure (grepping for program name )?
Code: int *p; p = new int[5]; for(int i=0;i<5;i++) *(p+i)=i;
Now suppose we want to add a 6th element (without using vector)
One way is to copy it across to a larger array:
Code: int *p; p = new int[5]; for(int i=0;i<5;i++) *(p+i)=i;
// realloc int* temp = new int[6]; std::copy(p, p + 5, temp); delete [] p; p = temp;
This looks like a very expensive operation and im looking for other ways.
Three questions regarding the above: Not using vector, is this the best way to do this?What about using realloc? How would I use realloc in this situation?Any other ways apart from realloc or vector?
I would like to realloc a 2D array. I have a counter, itime, it increases each step. Each step, I would like to reallocate my array, keeping the old values, and add new values to the array. When itime=1, I use only malloc, because it is allocated for the first time. When itime increases (e.q. itime=2), realloc comes into process. In the realloc process the GUI crashes.
I am working on expanding an array and my approach was to do this by copying the array into a bigger array. For this problem I cannot use vectors so what I did was the following:
int *a; a = new int[5]; for(int i=0;i<5;i++) *(a+i)=i; // reallocating array int* temp = new int[6]; std::copy(a, a + 5, temp); delete [] a; a = temp;
Is this approach correct, also how could I implement this on a program to expand an array to double its size or could I not use this to expand an array to double its size?
Working on this one from the Jumping into c++ book. The book asks that I create a multidimensional array at run time based on user input and fill it with a multiplication table
My code compiles fine but throws an uninitiated error for p when I try and run it.
Code: void multiDimentionalMultiplication(int x, int y, int z){ int ***p; **p = new int[x]; std::cout << "Allocating array.
I want to access the elements of my array dynamically. So far I've only figured out how to do this manually. if I tried it like this my code would work but there should be a better way right?