Передача адреса статического массива char
От: Аноним  
Дата: 16.03.14 22:12
Оценка: -1
Здравствуйте.
Подскажите, пожалуйста, почему не получается взять адрес статического массива таким образом:
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;
}


Как исправить первый вариант? Пишу на С, так что С++ фичи не предлагать.
Заранее спасибо за помощь.
указатель массив статический адрес
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.