pMemory = new int[id];
nMemory = *pMemory;
Первая строка заменяет массив, который вы malloc
-ed, на новый неинициализированный, а затем пытается прочитать из первого слота этого нового массива. Вы не должны напрямую назначать pMemory
; возможно, для pMemory[someIndex]
, но не для самого pMemory
.
Вы пытаетесь читать из массива pMemory
и назначать его nMemory
? Если это так, измените строки выше на это:
nMemory = pMemory[id];
Весь ваш l oop должен выглядеть примерно так:
if (pMemory != NULL) {
cout << "Numbers in memory: " << endl;
while(id < 20) {
nMemory = pMemory[id];
cout << nMemory << endl;
id++;
}
}
Или, используя другие идиоматические выражения c for
l oop:
if (pMemory != NULL) {
cout << "Numbers in memory: " << endl;
for (int i = 0; i < 20; i++) {
cout << pMemory[i] << endl;
}
}
(Вам также нужно будет инициализировать массив где-то над этим l oop. Я предполагаю, что вы делаете это в своем реальном коде, но если нет: опубликованный вами код выделяет массив с malloc()
, но не устанавливает для элементов полезные значения. Убедитесь, что вы установили что-то значимое, прежде чем пытаться прочитать и распечатать их.)