I made a resize function for my dynamic array template class that goes as follows. Note that the private member variables are T* arr, unsigned used, and unsigned cap.
template <class T>
void darray<T>::resize(unsigned size) {
if (size > cap) {
T* temp_arr = new T[size];
[Code] ....
Whenever I use this function to increase the size of the array, it will work the first time I need to use it, but after that, Visual Studios will trigger a breakpoint at line 14, and if I continue past the breaks, I eventually get _CrtIsValidHeapPointer(pUserData) assertion failure.
Suppose I wished to reallocate memory (resize) an array of pointers. Why does the following not work?(The program runs, yet yields a faulty segmentation error message. Why?):
Code: Int** d = malloc( ROWS * sizeof(int*)); for (i = 0; i < ROWS; i++) d[i] = malloc(COLS * sizeof(int)); fx(d);
My question is, in a function declaration, why do I not have to specify the number of columns. How is this different than when I pass a static 2D array to a function, in which I must declare the function parameter with the number of columns.
Code: void fx(int d[][COLS]); VS. Code: void fx(int **d);
// How can we write resize function for Matrix2 class; where this function need to use Protected data members of matrix1 class? Only setters are available in Matrix 1 class but there is no getter function in Matrix1 class !
How can we write resize function for Matrix2 class; where this function need to use Protected data members of matrix1 class? Only setters are available in Matrix 1 class but there is no getter function in Matrix1 class !
I am trying to pass a dynamic array to a function which will:
- Copy the contents of the array to a temporary dynamic array - Change the array passed in to one size bigger - Copy the elements from the temp array back into the newly changed array - Insert an item into the last spot of the array
Here is my code:
#include <iostream> using namespace std ;
void make_array ( int Old [] , int & old_size , int toInsert ) ; void zero_array ( int arry [] , int arry_size ) ; void print_array ( int arry [] , int arry_size ) ;
[Code] .....
The output seems like a memory address but is just a very large number, what have I done incorrectly to cause this?
But I get these error: "--------------------Configuration: Sprite2 - Win32 Debug-------------------- Compiling...
Test Sprite2.cpp C:UsersJoaquimDocumentsVisual C 98Sprite2Test Sprite2.cpp(23) : error C2440: 'type cast' : cannot convert from 'void *' to 'struct Images' No constructor could take the source type, or constructor overload resolution was ambiguous Error executing cl.exe.
/part of main function int *A=NULL; //load from file load_from_file(A, &next); printf("next=%d ",next); getchar(); printf("A[%d]=%d ",0,A[0]);getchar();//here program crashes }
[code]....
I initialize array A with NULL in main, and I "load" it with elements from a file. The code without function is working. But when I tried to use a function as above, my array crashes!!!
I'm writing a program that will implement BubbleSort and MergeSort and time them as they sort a dynamic array with N elements. These are the instructions on what my main.cpp file should do.
main.cpp Include all needed libraries for timing and random number generation while the number of element, N, is less than 100001 repeat the following.
create an array with N (initially 10) random elements sort the same array with Bubble and Merge sort time how long it takes each algorithm in microseconds (see example below) Increase N by a factor of 10 (N *= 10) Hint: you may want to put your merge sort object on the heap and delete it with every iteration of this loop
I need to create a main function with a one dimension dynamic array with float data type. The total number of array elements must be controlled by a user input from the keyboard. Test data is three different lengths 3,6,9 of the array. The lengths have to be set up at run time from users input. I understand how to create dynamic array but not where the user inputs the length of the array. How would I implement this?
I'm writing a program in which I have to use a matrix to represent a file in code. because it's a file, the size of the matrix is undefined, and therefore the matrix has to be dynamic. I found out that my compiler doesn't like dynamic multidimensional arrays, so I was thinking of this matrix as a dynamic (monodimensional) array of other dynamic (monodimensional) arrays. My program (and thus this example) uses unsigned chars.
I have a struct called Array and I'm to create a function to create a dynamic array that's fill with randomly generated integers from 0 to 50 (inclusive) and a function to destroy the array for freeing its memory. Below the code that I have written so far.
Code:
* Struct */ typedef struct {int *pArray; //the dynamic array int length; //the size of the dynamic array}Array; /* Function to create a dynamic array */ Array *initializeArray (int length) {int i; }
i need a function that will work for both dynamic and static implementations of a function to get the transverse of a matrix. so far, i have this
Code:
matrix transpose(matrix m) { int row, col; row = m.com_dim; col= m.row_dim; }
[code]....
this works well with my static implementation, but when i try it in dynamic it gives me errors. the function has to be the same for both dynamic and static implementation
Polygon* create_square(const Vector2d& position, const RGB& colour, const std::string name) { // Polygon, Vector2D, RPG and Vertex2d are structs with public data members only Polygon *temp = new Polygon; temp->name = name; temp->colour = colour; temp->position = position; temp->vertices = new Vertex2d; return temp; }
I am trying to re-size a bitmap image for a class.They gave us two options to use to do the program with: an array or move the file position indicator. I want to use the file option. All the bitmap header info is checking out. The file after being re-sized should be 822 bytes but it is 1.6 KiB and the image is distorted.
Code:
#include <stdint.h> /** * Common Data Types * * The data types in this section are essentially aliases for C/C++ * primitive data types.
I need to design an interface(a function prototype) that takes an argument which is used to pass information. The information can be passed by independent modules and third party softwares and hence can vary today and in future.
Basically, the function interface(arg1, info)caters a niche service to many independent applications and needs to process based on requirements passed by applications in the argument(info, in example).
I am looking for a design pattern for the function parameter - info.
Should I use a void pointer that can be casted to respective application specific class in the function ? will this be a good C++ design ?
or should I take this parameter to be a pointer to a generic abstract class that points to the respective application specific specialization ?
Do we have some design pattern to address this so as to handle other unforeseen challenges ?
When I use vectory.push_back(obj), if the length is out of reserved bound, it will deallocate the whole vector and reallocate a big piece of memory. From my understanding I think c++ only allocates 1 more place for the new obj. This is quite inefficient. Is there a way to set the step length whenever the size is out of bound? e.g. 50 more spaces.
When I try to resize my form, every time i try to resize it while running, the window blinks between original size and the new size it was given, when i release the mouse it either stay in its new size or shrinks back to its original size, What makes it return to its original size, maybe its something with the form_Resize function..
Is there any way to allow user to resize a CDialog only in one direction ? I mean, by width, but not by height ? How ? I noticed that overriding WM_SIZE, I can do nothing about this issue ...