Я пытаюсь понять, как использовать структуры как списки в C++. Я придумал кусок кода, который к моему understeanding не должно привести какие-либо ошибки, но он сделал ..Ошибка при попытке использовать структуры в C++
Мой код заключается в следующем:
struct item {
int data;
struct item *next;
};
struct item *begin = NULL;
void add(int x) {
struct item *a = new struct item();
a->data = x;
a->next = begin;
begin = a;
}
int main() {
add(2);
printf("%d\n", begin->data);
return 0;
}
и это дает мне это:
Undefined symbols for architecture x86_64:
"operator new(unsigned long)", referenced from:
add(int) in structtest-f49486.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Я использую GCC внутри моего терминала Mac для запуска своего кода. Я раньше этого не видел. Я обнаружил, что ошибки нет, когда я удаляю линию
struct item *a = new struct item();
Может ли кто-нибудь сказать мне, что здесь не так?
Спасибо,
Merijn
в C++ вам не нужно использовать ключевое слово struct каждый раз, когда вы используете его тип – Krab
Помимо точки объявления, '' '' struct', 'union',' enum' и 'class' могут быть опущены в C++, и в «новом» выражении его даже нужно опустить. Пожалуйста, проверьте некоторые примеры из учебника C++. –