Разыменование указателя внутри указателя структуры

На самом деле, версии стандарта C ++ до того, как C ++ 11 определили ключевое слово «export», [] , можно просто объявить шаблоны в файле заголовка и реализовать их в другом месте.

К сожалению, ни один из популярных компиляторов не реализовал это ключевое слово. Единственный, о котором я знаю, - это интерфейс, написанный Edison Design Group, который используется компилятором Comeau C ++. Все остальные настаивали на том, что вы пишете шаблоны в заголовочных файлах, нуждающихся в определении кода для надлежащего создания экземпляра (как уже указывали другие).

В результате стандартная комиссия ISO C ++ решила удалить export особенность шаблонов, начинающихся с C ++ 11.

34
задан James McNellis 19 June 2010 в 18:58
поделиться

2 ответа

Как и любой указатель . Чтобы изменить адрес , он указывает на:

struct_inst-> pointer = & var;

Чтобы изменить значение по адресу, на который он указывает:

* ( struct_inst-> указатель) = var;

48
ответ дан 27 November 2019 в 16:57
поделиться

Вы создаете указатель типа mystruct, я думаю, возможно, вам не нужен указатель:

int x;
struct mystruct mystruct_inst;
mystruct_inst.pointer = &x;
*mystruct_inst.pointer = 33;

Если вам нужен указатель mystruct на heap вместо этого:

int x;
struct mystruct *mystruct_inst = malloc(sizeof(struct mystruct));
mystruct_inst->pointer = malloc(sizeof(int));
*(mystruct_inst->pointer) = 33;  

/*Sometime later*/

free(mystruct_inst->pointer);
free(mystruct_inst);
4
ответ дан 27 November 2019 в 16:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: