Запись указателя в массив указателей
От: wbear  
Дата: 24.04.23 17:00
Оценка:
Добрый вечер!

Делаю лабу.
Задача такая. Динамически создаем массив указателей. Который должен хранить в качестве элементов указатели на строки.
Последний элемент в массиве 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;
    }



Сильно не пинайте. я только начал учить С
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.