2013-12-17 3 views
1

Я пытаюсь сохранить данные из файла CSV и столкнулся с нарушением прав доступа. Первое изображение было показано, как распределена память, вторая показывает проблемную область, а третья - это место в csv, где возникла проблема. Любая помощь приветствуется.Нарушение прав доступа при хранении данных из CSV

enter image description here snip of my VS

data at problem location

+0

'AllCurrentData [newLineCount] .data [tabCount]' указывает на 'NULL' (0x00000000). Перед попыткой использовать его необходимо проверить результат вызова malloc. –

+0

Что такое 'NUM_PRODUCTS' и' COLUMNS'? Похоже, вы сильно закодировали число и то, и другое ошибочно. –

ответ

1

Похоже, первый контур, который делает "предварительное распределение" может иметь ошибку. Следующее распределение:

AllCurrentData[newLineCOunt].data = malloc(COLUMNS * sizeof(char)); 

должен, как мне кажется, такой:

AllCurrentData[newLineCOunt].data = malloc(COLUMNS * sizeof(char*)); 
+0

Спасибо, ты мой герой! – TinMan

+0

@TinMan: Я рад, что это сработало. Поскольку исходное распределение было слишком маленьким, назначения (через malloc) в конечном итоге будут записываться за конец выделенной памяти ... и тогда все может произойти. –