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?
I am trying to retrieve the elements in an array to print them. I am pretty sure I have everything right, but it is not working. There are 5 values in the array {3, 4, 10, 5, 6}, but the first two elements (supposed to be 3,4) are coming out a 0,-2654238590. The last three elements are coming out correct.
void addDynArr(DynArr *v, TYPE val) { /* FIXME: You will write this function */ assert(v != 0); //resize if necessary if(v->size >= v->capacity)
I've been working for some number of days on this code to take information about movies from both a file and the user, store the infos in an array of structs, and at the end, write all the info out to a file. I'm having some problems with an error message reading:
"prog.c:102:11: error: subscripted value is neither array nor pointer nor vector"
this error occurs in many lines (which I will label specifically below -- they are everywhere where I am trying to access/modify an individual element of a struct element of the array).
A few examples of where I am having the problems are lines: 39, 52-55, 70, 72, and 86 (and more of the same exact variety).
I am obviously rather systematically doing something wrong, but I am quite certain all of these are the exact same mistakes.
I pull up also 2 or 3 other errors, but I don't think they are related and should be able to fix them quickly once I work out this conundrum.
#include <string.h> #include<stdlib.h> #include <stdio.h> int moviecount =0; typedef struct{ int year;
I have run across what I believe to be a syntax problem which I don't understand. I have a structure with two character array and I need to be able to change the size of those array dynamically. I have to use character arrays and I think the dot notation. I am not sure if I can use arrow notation. I can not do this problem using strings and vectors.
#include <iostream> #include <cstring> using namespace std;
I'm confused about accessing elements from arrays. Supposed I have an array of pointers to char:
char *names = { "John", "Rose", "Steven" };
To access one of the strings, should I use names[ 0 ][ i ], where i is an index in the set ( 0, 1, 2 ), or should I use names[ i ]? I would think it would be the first option, because this array has 1 dimension that contains others arrays, right?
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
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?
Write a program that reads in the names and the ages of ten people. Store these data in two arrays (make sure that the entered names are not longer than the array size you choose). Then produce a table of ten lines, with each line giving the name and age of a person along with the (positive or negative) deviation of that person's age from the average age. The code I wrote to fill in the arrays looks as follows
Code: #include<stdlib.h> #include<stdio.h> int main() { // begin main() // array length
[Code]....
When I compile it, it gives me warnings that few of the variables I declared aren't used, but that is not affecting the program at all. When I run the program, it allows me to pass the names and ages into the arrays, but when it comes to displaying them, I'm getting a 'Segmentation fault'. I used very similar code in Java to write the program, and it worked fine so what is the problem with C then?
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 am trying to figure out the syntax to dynamically allocate a single dimension of a triple dimensional array. Basically i have a 2D array of structs. but each struct is an array (basically rows of the information). The rows of this structure need to be allocated dynamically, but the height and width of the overarching structure are static.
Basically: Struct * ts_FieldInfo[100][100] = new Struct[Class.returndataitems()];
I have changed my const global int NUMLABS to a non constant variable so that the user can decide how many labs to input. I adjusted the parameters of each function to add NUMLABS becuase the variable is no longer constant. But now main() returns 0 right after the user chooses how many stations to put in each lab. I am having difficulty understanding these dynamically allocated arrays.
This program uses dynamic arrays to store login information for four labs. Each of the four labs is referenced by the labs[] array which is indexed from 0-3. A pointer in the labs[] array then references a dynamic array that is of size for however many computers are in that lab.
Written by: Luca Del Signore Last modified on: October 3rd Known bugs: N/A *********************************************************************/ #include <iostream> #include <cstdlib> using namespace std;
so I have this code that dynamically allocates a pointer array increasing and removing elements of the array as its operated on.then it sorts and prints out the array when the user is finished operation on the array. i get this error message when running the program though.
"Unhandled exception at 0x0F474F98 (msvcr110d.dll) in Lab10_VarArray.exe: 0xC0000005: Access violation reading location 0xCCCCCCC0."
this is my code
#include <iostream> #include <cstdlib> #include "Header.h" using std::cout; using std::endl; using std::cin; int main(void) { char op='x';
I have a structure, containing a pointer as a member. I dynamically create an array of that structure type, and then need to dynamically create an array for its pointer member.
#include <iostream> #include <string> using namespace std;
[Code]....
There is more of my program afterwards, but it shouldn't matter. The errors I am getting at compile time are that I cannot convert an int pointer to an int (line 29) and that test is not a member of CourseGrade (lines 44/45).
My thought is I might be using the * operator incorrectly. My code before hand in line 29 was
for (i = 0; i < numberStudents; i++) *studentPtr[i]->tests = new int[numberTests];
but the compiler suggested a '.' rather then the '->'
Write a program that dynamically allocates an array large enough to hold a user-defined number of test scores. Once all the scores are entered by the user, the array must be passed to a function that sorts them in ascending order. It must use another function that calculates the average score. The program should display the sorted list of scores and average with appropriate headings. The program must use pointer notation instead of array notation. Validation: Do not accept negative numbers for test scores; keep prompting the user for a new grade. Do not accept negative numbers for the number of scores the user wants to enter.
#include <iostream> #include <iomanip> using namespace std; // Function prototypes double getAverage(int*, int); void sortScore(int *,int );
[Code] ....
I have no errors in my code but when i run it and i enter a positive interger it just goes into a loop to enter a positive number.
I'm okay with 2-dimensional arrays, but when I get to 3 or more, I can't seem to wrap my head around how to assign and/or pull values from specific parts.
To give an example, let's take the following example:
We know that a player can take up to 5 total quests, and each quest can have a max of 5 tasks.
Let's assume I have the following multi-dimensional array holding all of a players quest data:
quests[0] = 78;// Store the questID quests[0][0] = 3945;// Store the 1st creature ID quests[0][1] = 2230;// Store the 2nd creature ID quests[0][2] = 3045;// Store the 3rd creature ID quests[0][0][0] = 2;// Store how many needed of the 1st creature quests[0][1][0] = 5;// Store how many needed of the 2nd creature quests[0][2][0] = 13;// Store how many needed of the 3rd creature
As we know, the above code can't be done. How do I assign certain values to each specific dimension?
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
This is a homework assignment where I have to read a file into a dynamically allocated 2d array. The file format is 10 Jim 3.6 Jake 4.0 Will 3.0 Sara 3.4 Mike 2.5 Ellen 2.9 Melissa 3.9 Eric 3.8 John 3.5 Beth 3.9
where 10 is the number of students followed by the students and the gpa's. There is more to the program but I have not implemented it yet because I am getting a segmentation fault. The output I am getting when I print the array is Jim 3.6 Jake 4.0 Will 3.0 Sara 3.4 Segmentation fault
I can see where the problem lies. If I raise value for row when I am allocating the rows of the array, all of the names print. I just do not see why I need to. From my understanding the row * sizeof(char*) should give me enough room for 10 entrie.
Code: #include <stdio.h> #include <stdlib.h> void sort(); int main()