C :: Segmentation Fault When Dynamically Allocating 2D Array
Apr 20, 2013
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()
[Code] .....
View 6 Replies
Nov 24, 2013
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.
[code]....
View 8 Replies
View Related
Jun 14, 2013
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()];
View 2 Replies
View Related
Apr 15, 2014
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';
[Code]...
View 3 Replies
View Related
Apr 18, 2015
I'm trying to dynamically allocate a standard array at runtime in the function of a class where the array is "owned" by the calling class. The calling class knows nothing about the array before it makes the call to create the array other than the datatype of the array. But the full array of data needs to be returned.
It appears that the pointer being passed makes a copy of the pointer on the stack and then when the function returns it pops it off the stack and the array is a memory leak because the pointer is once again a nullptr as it was before being passed and the array has not been deallocated with delete yet (as it should not have been).
(Edit:Unexpected value of MyArray being a nullptr instead of pointing to an array after returning from line 09.)
class Class1 {
void FunctionA() {
Class2 OwnedClass;
int* MyArray = nullptr;
int SizeOfMyArray = 0;
[Code] ....
View 14 Replies
View Related
Jan 18, 2014
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]....
View 2 Replies
View Related
Aug 27, 2014
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?
View 8 Replies
View Related
Jun 4, 2013
i want to enter a URL in as a string, and extract just the URL part.
eg: Code: input: URL....
output: URL....
Input: URL....
output: URL....
part of our header file which we cannot edit (the url is always less than 140 characters):
Code:
char url[140];
function i am having problems with
Code: void init_url(char new_url[])
{
/*
This function sets the variable url to new_url and url_size to the number of characters in the url
It also initializes url_error_flag
}
[code]....
whenever i try a URL like the second one above with no '?' i'm getting a segmentation fault error which is becase i'm trying to access an invalid index. i'm not sure what an array is initialized to when i do not explicitly assign it anything, for example
Code:
char values[140] = {0};
i've read it depends on whether it is a global vs local array or something? i know this could all be fixed with simply assigning the array values to 0 but i'm not allowed to edit the header file.
View 11 Replies
View Related
Jan 25, 2013
This function should replace all instances of a character in a given character array, while returning the amount of characters changed, but I keep getting a segmentation fault at the highlighted area.
I'm only supposed to use pointers so arrays are out of the question, and I don't think we are allowed to use the string.h library as well. How I could avoid something the segmentation fault or ways to fix it?
Code:
int replaceChars(char replace, char find, char *input) { int i, j;
//Finds length
for(i = 0; *(input + (i + 1)) != '