0
Инструмент Valgrind не обнаруживает следующую ошибку в коде.Обнаружение ошибок памяти уровня переменного объекта класса
#include <iostream>
#include <string.h>
using namespace std;
class Instrument
{
public:
char instrumentId[16];
char symbol[16];
char cusip[16];
public:
void Pack()
{
memset(instrumentId, 'I', 16);
memset(cusip, 'C', 16);
memset(symbol, 'S', 18); // This is wrong
}
};
int main(int argc, char** argv)
{
Instrument* ins = new Instrument();
ins->Pack();
};
Есть ли инструмент, способный обнаружить эти ошибки. Когда он пишет больше, чем выделено для «Инструмента», обнаружен Valgrind. Однако это не обнаружено.
Примечание: не '#include' –
Тогда как насчет memset? –
@ DieterLücking почему бы и нет? –