Программа выдает исключение. Думаю, это связано с тем, что динамический массив не строится с правильной емкостью.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Программа выдает исключение. Думаю, это связано с тем, что динамический массив не строится с правильной емкостью.

Сообщение Гость »


Я пишу школьный проект, в котором мне не разрешено использовать какие-либо внешние библиотеки (что действительно отстой, поскольку мне приходится создавать динамический массив, а не вектор в соответствии с требованиями проекта). Я считаю, что проблема в том, что когда я запускаю конструктор для своего динамического массива, он не присваивает моему массиву емкость. Беллоу — мой конструктор.

Код: Выделить всё

Roster::Roster(int capacity) {
capacity = capacity;
size = 0;
Student* classRosterArray = new Student[capacity];
а затем я вызываю его, используя Roster classRosterArray(5); в своей основной функции. Когда я смотрю на отладку, она показывает, что емкость classRosterArray равна 0. Я посмотрел, что другие люди сделали для этого задания, и они это сделали.

Код: Выделить всё

Roster::Roster(int capacity) {
this->capacity = capacity;
this->size = 0;
this->classRosterArray = new Student * [capacity];
Но даже когда я попробовал, он по-прежнему говорил, что емкость равна 0 при отладке, и все равно возникало исключение, и единственная разница в выводе заключалась в том, что он указывал this< /strong> был 0xFDFDFE75 (пытался сделать две звездочки с каждой стороны, но они были выделены жирным шрифтом), что, как я предполагаю, является просто указателем, который программа пыталась поместить в массив, для которого не было никакой емкости. Я новичок в C++, и указатели доставили мне огромную боль в заднице. Я помещу весь свой код ниже на случай, если это не то, что я думаю, но, судя по всей моей отладке и переработке, это кажется точкой останова.
main.cpp

Код: Выделить всё

#include 
#include "degree.h"
#include "student.h"
#include "roster.h"
using namespace std;

int commaSpotStart = 0;
int commaSpotEnd;
int commaDist;
string scrubbedID;
string scrubbedFName;
string scrubbedLName;
string scrubbedEmail;
string scrubbedAge;
string scrubbedD1;
string scrubbedD2;
string scrubbedD3;
string scrubbedDegree;
int convAge;
int convD1;
int convD2;
int convD3;
DegreeProgram convDegree;

void scrub(string stringStudent) {
commaSpotStart = 0;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
scrubbedID = stringStudent.substr(commaSpotStart, commaSpotEnd);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
commaDist = commaSpotEnd - commaSpotStart;
scrubbedFName = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
commaDist = commaSpotEnd - commaSpotStart;
scrubbedLName = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart); commaDist = commaSpotEnd - commaSpotStart;
scrubbedEmail = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
commaDist = commaSpotEnd - commaSpotStart;
scrubbedAge = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
commaDist = commaSpotEnd - commaSpotStart;
scrubbedD1 = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
commaDist = commaSpotEnd - commaSpotStart;
scrubbedD2 = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
commaDist = commaSpotEnd - commaSpotStart;
scrubbedD3 = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
commaSpotEnd = stringStudent.find(",", commaSpotStart);
commaDist = commaSpotEnd - commaSpotStart;
scrubbedDegree = stringStudent.substr(commaSpotStart, commaDist);
commaSpotStart = commaSpotEnd + 1;
}
void printStringStudent() {
int i = 0;
std::cout 

Источник: [url]https://stackoverflow.com/questions/78158431/program-is-throwing-exception-think-it-is-due-to-dynamic-array-not-constructing[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Программа выдает исключение. Думаю, это связано с тем, что динамический массив не строится с правильной емкостью.
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Программа выдает исключение. Думаю, это связано с тем, что динамический массив не строится с правильной емкостью [закрыт
    Anonymous » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • C# массив с емкостью через int.maxvalue
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Проблема с емкостью сервера данных jQuery ajax 503
    Гость » » в форуме Php
    0 Ответы
    43 Просмотры
    Последнее сообщение Гость
  • Проблема с емкостью сервера данных jQuery ajax 503
    Гость » » в форуме Jquery
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость

Вернуться в «C++»