ערכתי לאחרונה בתאריך 21.01.09 בשעה 18:38 בברכה, זולי
בגדול בנוגע להקצאות דינמיות.. מישהו יכול להסביר לי מה לא בסדר בקוד שלי?
הוא זורק אותי כשאני מנסה למחוק את ההקצאה: (מצורף הקובץ בסוף)#include <iostream>
using namespace std;
const int STOP = -1;
int* doubleArray (int* arr, int& size)
{
int* newarr = new int;
int* newstart = newarr;
int* start = arr;
while (newarr-newstart < size)
{
*newarr = *arr;
arr++;
newarr++;
}
***PROBLEM *** delete start;
size *= 2;
return newstart;
}
void inputGrades (int* grades, int& size, int& logsize)
{
int* start = NULL;
grades = new int;
start = grades;
size = 2;
logsize = 0;
cin >> *grades;
while (*grades != STOP)
{
if (grades-start == size)
grades = (grades-start)+doubleArray(start,size);
grades++;
cin >> *grades;
}
grades--;
logsize = grades-start;
}
void main()
{
int* grades = NULL;
int size = 0;
int logsize = 0;
int i = 0;
cout << "PE scores: \n";
inputGrades(grades,size,logsize);
cout << "Scores recived are: \n";
for ( i = 0 ; i < logsize ; i++, grades++)
cout << *grades << " ";
cout << endl;
}
https://rotter.name/User_files/nor/49774e7564c17639.txt#
