По завершению работы функции выдает ошибку
иногда это
Run-Time Check Failure #2 - Stack around the variable 'corrW_' was corrupted.
а иногда вот это
Run-Time Check Failure #2 - Stack around the variable 'w_' was corrupted.
Грешил, что памяти мало выделяется, так нет всё в порядке.
double *corrW_ = new double[l_];
::ReadFile(file_, &corrW_, (sizeof(corrW_[0])*l_), &fl, NULL);
::SetFilePointer(file_, mfl, 0, FILE_CURRENT);
int qw_ = 0;
qw_ += s_in_*nl_[0];
for (int i = 0; i < l_ - 1; i++)
qw_ += nl_[i] * nl_[i+1];
double ***w_ = new double**[l_];
for (int i = 0; i < l_; i++) {
w_[i] = new double*[nl_[i]];
for (int j = 0; j < nl_[i]; j++) {
w_[i][j] = new double[(i == 0) ? s_in_ :
(nl_[j])];
}
}
::ReadFile(file_, &w_, sizeof(w_[0][0][0])*qw_, &fl, NULL);
Что здесь может быть не так?
Передача указателя на переменную &corrW_
приводит к записи прочитанных данных в эту переменную, а не в буфер, на которые она указывает.
Во втором случае проблема еще серьезнее, так как прочитать данные во множество буферов за один проход не получится.
Что касается double ***
- Three Star Programmer
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Решал задачу, суть которой было найти максимальное количество повторенийПосле решения задачи посмотрел предложенный вариант её решения
Как получить доступ к ним по итератору, чтобы можно было удалять объект из коллекции? struct Base { virtual void doit() { cout << "Base!\n"; } virtual...
Попытался сделать задачу из интернета на If,ElseВ итоге X выводится нормально,а Y с QNan