Добрый вечер!
Делаю лабу.
Задача такая. Динамически создаем массив указателей. Который должен хранить в качестве элементов указатели на строки.
Последний элемент в массиве NULL.
Для работы с памятью нужно использовать функции malloc. Для изменения размера выделенной памяти функцию realloc.
Память под массив выделил. Выделил для строки тоже динамически память. Расширил ранее выделенную память под 2-а элемента.
При попытке записать в первый элемент массива указатель строки, компилятор ругается на такую запись -> ( *((DWORD*)pNewMem+v3-1) = pS;//????? )
Че иму не так.
char* CloneString(char* lpString)
{
int len = strlen(lpString);
char* ptrMemString = (char*)malloc(len+1);
if(ptrMemString)
strcpy(ptrMemString, lpString);
return ptrMemString;
}
int v3=0;
DWORD* pMemory;
pMemory = (DWORD*)malloc(sizeof(DWORD));
*((DWORD*)pMemory+v3)=NULL;
DWORD* v8;
pS = (DWORD*)CloneString("d://Work//CxFViewer//CxFViewer//4//data//cbf//AAG169.cbf");
if(pS)
{
printf("%s\n", pS);
DWORD* pNewMem = (DWORD*)realloc(pMemory, (4*++v3)+4);
if(!pNewMem)
{
free(v8);
free(pMemory);
return 0;
}
pMemory = pNewMem;
*((DWORD*)pNewMem+v3-1) = pS;//?????
*((DWORD*)pMemory+v3)=NULL;
}
Сильно не пинайте. я только начал учить С