Я новичок в C ++ и выхожу со следующей ошибкой при назначении значений объекту:
JNI DETECTED ERROR IN APPLICATION: non-zero capacity for nullptr pointer: 8968320
Это класс, которому я пытаюсь присвоить значение:
class DirtyRegion
{
public:
DirtyRegion():dirtyRects(0), numRects(0), maxRects(0) {}
~DirtyRegion() {}
public:
ARect *dirtyRects; // Array of Rects
int numRects; // Number of Dirty Rects in the Array
int maxRects; // Size of Array
};
Я думаю, что верхняя строка в конструкторе инициализирует объект, но я не совсем уверен. Как вы можете видеть, здесь есть переменная типа «ARect», которая является эквивалентом NDK для android.graphics.Rect:
typedef struct ARect {
#ifdef __cplusplus
typedef int32_t value_type;
#endif
/// Minimum X coordinate of the rectangle.
int32_t left;
/// Minimum Y coordinate of the rectangle.
int32_t top;
/// Maximum X coordinate of the rectangle.
int32_t right;
/// Maximum Y coordinate of the rectangle.
int32_t bottom;
} ARect;
В основном методе я создаю экземпляр, используя эту строку:
android::DirtyRegion dirtyRegion;
Это работает нормально, однако, если я присваиваю значения переменным объектов, я получаю ошибки. например:
dirtyRegion.maxRects = 0;
Я что-то упустил здесь?
Спасибо!