Здравствуйте.
Подскажите, пожалуйста, почему не получается взять адрес статического массива таким образом:
void func(void *param)
{
*((char **)param) = "Test name";
}
int main()
{
char name[15];
func((char **)&name); //&name и name, как показывает дебаггер, имеют один и тот же адрес
printf("%s", name); //Вывод какого-то мусора из памяти
return 0;
}
И почему такой вариант работает:
void func(void *param)
{
*((char **)param) = "Test name";
}
int main()
{
char name[15];
char **t = (char **)&name;
func(t);
printf("%s", *t);
return 0;
}
Как исправить первый вариант? Пишу на С, так что С++ фичи не предлагать.
Заранее спасибо за помощь.