Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Обращение к double** из метода dll вызывает ошибку памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где void? http://www.cyberforum.ru/cpp/thread878012.html
Скорее всего тема опять будет пустовать, но я таки попробую. if ( __SETP__(_AH & 0x44, 0) ) v4f9ab0(0, 0, "cg_drawShellshock 0"); Вот код. Его придумал IDA. Что за if, понятно и так....
C++ Problem with Visual Studio 10 Начал писать на OpenGL написал инициализацию (писал без тестовых компиляций) вылезла ошибка Ошибка 1 error LNK1123: сбой при преобразовании в COFF: файл недопустим или... http://www.cyberforum.ru/cpp/thread877864.html
C++ Преобразования на плоскости
Помогите пожалуйста. Реализовать с заданной совокупностью фигур все виды афинных преобразований: 1. перенос по оси OX и оси OY, 2. отражение относительно координатных осей и прямой Y=X, 3....
C++ Посылка на принтер
Требуется распечатать какую-либо строку, какие есть способы посылки строки на принтер? в гугл не посылать, я там уже был, то что нашёл: #include <stdio.h> int main() { FILE *fp; char line; if...
C++ VK API http://www.cyberforum.ru/cpp/thread877417.html
Есть желание разобраться с тем как использовать VK API в C++. Небольшая информация: Писал все время в Code::Blocks в Windows 7. Писал только чисто алгоритмические, олимпиадные задачи(в console...
C++ Вызов через указатель на функцию-член Всем экспертам привет :) Разбавим раздел, так сказать. Задался тут таким вопросом: Есть класс, в котором объявлено поле типа "указатель на функцию-член" : struct C { void (C::*m)(); ... подробнее

Показать сообщение отдельно
mgevlich
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 3

Обращение к double** из метода dll вызывает ошибку памяти - C++

26.05.2013, 11:58. Просмотров 508. Ответов 1
Метки (Все метки)

Есть класс который создает двухмерный массив. Этот класс экпортирую в dll и использую полученную библиотеку в программе С#. Все методы(которые здесь не упомяноты) работают, кроме одного SomeClass::SaveFile. Собственно при вызове этого метода происходит ошибка в которой говорится что память повреждена, однако данные someData доступны.

П.С. Собственно ошибка происходит тогда когда я пытаюсь полученные из матрицы данные сохранить например в другом массиве, или как в коде в файл, и именно если это происходит в dll. Чтобы обойти эту ошибку я данные сохраняю из программы c#.

Прошу помощи в раскрытии этого для меня непонятного феномена "Поврежденной памяти".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class EXPORT SomeClass {
    //...
private:
    int ncols, nrows;
    double** someData;
}
 
double& SomeClass::_H( int i, int j ) {
    return *(*(this->someData + i) + j);
}
 
void SomeClass::SaveFile( const char* strFileName ) {
    FILE *fp;
    errno_t err;
    if( err = fopen_s( &fp, strFileName, "wb") != 0 ) {
        return;
    }
    for( int i = 0; i < this->nrows; i++ ) {
        for( int j = 0; j < this->ncols; j++ ) {
            fwrite( &this->_H( i, j ), sizeof(double), 1, fp);
        }
    }
    fclose(fp);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru