Сообщение Re: Запись указателя в массив указателей от 24.04.2023 17:10
Изменено 24.04.2023 17:11 T4r4sB
Re: Запись указателя в массив указателей
Здравствуйте, wbear, Вы писали:
*((DWORD*)pNewMem+v3-1) = pS;//????? )
Выражение внутри скобок имеет тип DWORD*
значит разыменованное выражение имеет тип DWORD
А pS, судя по всему, имеет типа DWORD*
И ещё у тебя везде путаются указатели на строки и указатели на указатели на строки
Попробуй так:
А вообще у тебя походу DWORD используется для хранения указателя, это плохо, ты используешь не тот тип, к тому же их размеры совпадают не везде
Если хоть как-то убрать всю путаницу, то будет примерно так (набирал в браузере):
А лучше такие вещи делать на С++. А если приходится постоянно дёргать динамическую память на сишке — это значит, ты либо что-то делаешь не так (например, нельзя ли заранее выделить блоки нужного типа и размера для начала работы алгоритма), либо выбрал не тот язык для задачи.
*((DWORD*)pNewMem+v3-1) = pS;//????? )
Выражение внутри скобок имеет тип DWORD*
значит разыменованное выражение имеет тип DWORD
А pS, судя по всему, имеет типа DWORD*
И ещё у тебя везде путаются указатели на строки и указатели на указатели на строки
Попробуй так:
*((DWORD**)pNewMem+v3-1) = pS;
А вообще у тебя походу DWORD используется для хранения указателя, это плохо, ты используешь не тот тип, к тому же их размеры совпадают не везде
Если хоть как-то убрать всю путаницу, то будет примерно так (набирал в браузере):
Скрытый текст | |
| |
А лучше такие вещи делать на С++. А если приходится постоянно дёргать динамическую память на сишке — это значит, ты либо что-то делаешь не так (например, нельзя ли заранее выделить блоки нужного типа и размера для начала работы алгоритма), либо выбрал не тот язык для задачи.
Re: Запись указателя в массив указателей
Здравствуйте, wbear, Вы писали:
*((DWORD*)pNewMem+v3-1) = pS;//????? )
Выражение внутри скобок имеет тип DWORD*
значит разыменованное выражение имеет тип DWORD
А pS, судя по всему, имеет типа DWORD*
И ещё у тебя везде путаются указатели на строки и указатели на указатели на строки
Попробуй так:
А лучше
А вообще у тебя походу DWORD используется для хранения указателя, это плохо, ты используешь не тот тип, к тому же их размеры совпадают не везде
Если хоть как-то убрать всю путаницу, то будет примерно так (набирал в браузере):
А лучше такие вещи делать на С++. А если приходится постоянно дёргать динамическую память на сишке — это значит, ты либо что-то делаешь не так (например, нельзя ли заранее выделить блоки нужного типа и размера для начала работы алгоритма), либо выбрал не тот язык для задачи.
*((DWORD*)pNewMem+v3-1) = pS;//????? )
Выражение внутри скобок имеет тип DWORD*
значит разыменованное выражение имеет тип DWORD
А pS, судя по всему, имеет типа DWORD*
И ещё у тебя везде путаются указатели на строки и указатели на указатели на строки
Попробуй так:
*((DWORD**)pNewMem+v3-1) = pS;
А лучше
pNewMem[v3-1] = pS;
А вообще у тебя походу DWORD используется для хранения указателя, это плохо, ты используешь не тот тип, к тому же их размеры совпадают не везде
Если хоть как-то убрать всю путаницу, то будет примерно так (набирал в браузере):
Скрытый текст | |
| |
А лучше такие вещи делать на С++. А если приходится постоянно дёргать динамическую память на сишке — это значит, ты либо что-то делаешь не так (например, нельзя ли заранее выделить блоки нужного типа и размера для начала работы алгоритма), либо выбрал не тот язык для задачи.