работа с char**

ditban
Дата: 28.08.2014 11:11:51
Добрый день. Есть функция:
func(int count, char* string1, int* code2, char** string2)

здесь code2 и string2 - выходные парамеры. Подскажите, как правильно присвоить char** string2 значение, к примеру "abc"?
Dimitry Sibiryakov
Дата: 28.08.2014 12:14:52

ditban
как правильно присвоить char** string2 значение, к примеру "abc"?

*string2 = "abc";

Posted via ActualForum NNTP Server 1.5

mayton
Дата: 28.08.2014 12:16:35
ditban, а почему тебе не интересно как туда передать скажем два значения

{"abc","xyz"}
wst
Дата: 28.08.2014 12:43:12
Ради Ктулху не надо их провоцировать! Вроде уже давно с С++ сбежал, но до сих пор икается при воспоминаниях о попытках объяснить, что передаваемый в функцию указатель чтобы та вернула строку тоже надо инициализировать, а не "ну это же выходной параметр, вот в него функция и пишет, она же работает, значит ошибки нет, а эта бага непонятно откуда берется, наверно винда нестабильная виновата" (почти точное изложение речи орла, любившего писать нечто вроде
LPSTR * lpOutputString; get_some_string(lpOutputString);
при том что функция типа void (LPSTR*) ).
Dimitry Sibiryakov
Дата: 28.08.2014 12:53:17

wst
Вроде уже давно с С++ сбежал

И правильно сделал, раз уж не научился различать функцию, возвращающую строку и функцию,
возвращающую указатель на строку. Это две разные вещи, причём вопросам управления памятью
(о которых ты талдычишь) совершенно перпендикулярные.

Posted via ActualForum NNTP Server 1.5

wst
Дата: 28.08.2014 13:07:16
Я этот мусор как раз разгребал за такими вот деятелями, считающими что указатели и управление памятью перпендикулярны.
SashaMercury
Дата: 28.08.2014 13:15:53
ditban
Добрый день. Есть функция:
func(int count, char* string1, int* code2, char** string2)

здесь code2 и string2 - выходные парамеры. Подскажите, как правильно присвоить char** string2 значение, к примеру "abc"?


Никак, у них разные типы.
Но Dimitry Sibiryakov скорее всего дал вам ответ на тот вопрос, который вы хотели спросить.
SashaMercury
Дата: 28.08.2014 13:20:08
wst
Ради Ктулху не надо их провоцировать! Вроде уже давно с С++ сбежал, но до сих пор икается при воспоминаниях о попытках объяснить, что передаваемый в функцию указатель чтобы та вернула строку тоже надо инициализировать, а не "ну это же выходной параметр, вот в него функция и пишет, она же работает, значит ошибки нет, а эта бага непонятно откуда берется, наверно винда нестабильная виновата" (почти точное изложение речи орла, любившего писать нечто вроде
LPSTR * lpOutputString; get_some_string(lpOutputString);
при том что функция типа void (LPSTR*) ).


прочитал и не увидел логики. Объясните нормально, что вы хотели сказать


И mayton ни кого не провоцирует, а пытается дать знания человеку.
Dimitry Sibiryakov
Дата: 28.08.2014 13:26:33

SashaMercury
прочитал и не увидел логики.

Как я уже сказал: человек путает присваивание указателю и присваивание переменной на
которую указатель указывает. Это эмоциональное, логику искать бесполезно.

Posted via ActualForum NNTP Server 1.5

mayton
Дата: 28.08.2014 13:30:29
return string - это кстати злобный антипаттерно и грабли с топором на ручке
на который каждый С-newbie обязательно наступит. Разобъёт башку а потом
почешется забудет и еще раз наступит...