У меня есть такая структура:
typedef struct string {
unsigned long length;
unsigned *data;
} string;
Могу ли я написать что-нибудь, чтобы, когда я делаю это:
string s;
свойство length
равно нулю вместо того, что происходит в памяти? data
работает хорошо, так как он установлен на ноль или нулевой указатель.
Пример того, что происходит сейчас:
string s;
printf("length: %lu\n", s.length);
printf("pointer: %lu\n", (unsigned long) s.data);
Результат:
length: 140737488347584
pointer: 0
Я хочу избежать необходимости вызывать функцию инициализации для каждой новой строки, чтобы просто установить length
в ноль.
Дополнительная информация
Теперь, когда я думаю об этом, в моем конкретном случае, возможно, нет необходимости делать это (хотя это было бы неплохо), потому что большинство людей первоначально установили бы строку через ctou
(которая импортирует UTF-8 из char указатель) и эта функция в любом случае устанавливает length
на ноль.