У меня есть программа, в которой мне нужно работать с указательными массивами. Моя проблема в том, что я не знаю, как удалить элемент i из указателя p (p [i]). Я подробно расскажу о проблеме ниже.Удалить элементы из массива указателей
Я имею структуру:
struct CuttingLine
{
NxU32 linePoints[150];
NxU32 lineLength;
NxVec3 normal;
};
Тогда я объявляю указатель:
CuttingLine* cuttingLines;
Я инициализировать указатель, как это:
cuttingLines = (CuttingLine*)malloc(sizeof(CuttingLine) * 10);
А потом добавить некоторые элементы (обратите внимание, что это только для демонстрационных целей, в моей программе создается строка и даны значения):
for(int i=0;i<3;i++)
cuttingLines[i] = line;
Затем я хочу снова пройти через указатель, и удалить три элемента, но не освобождает указатель (Я понимаю, что вы можете удалить указатель по телефону бесплатно (cuttingLines)). Как я могу это сделать? Я просто хочу удалить элементы внутри него, но не освобождать память, выделенную в начале.
Удалить или стереть? Что вы хотите, чтобы память содержала после операции? – Beta
Это было бы очень утомительно. Для сложных манипуляций списками используйте вектор. – ApproachingDarknessFish
Чтобы * удалить * элемент (или установить его пустым, насколько я понимаю ваш вопрос), вам придется «memset (cutLines [i], 0, sizeof (CuttingLine))». Это не освобождает память, но устанавливает ее в «NULL». – rath