Для чего указателю тип, ??
Заранее же известно что там будет, адрес объекта ..??
> Для чего указателю тип, ??
> Заранее же известно что там будет, адрес объекта ..??void *
> Для чего указателю тип, ??
> Заранее же известно что там будет, адрес объекта ..??Чтобы знать, какого рода объект. Тем более, что без знания типа структуры, указатель на неё использовать проблематично.
ЦП ведь ничего не знает про массивы и структуры, он с ними со всеми работает по тому же принципу: база+смещение. Это просто фишка языка, добавляющая семантику, чтобы программист меньше тупил и ошибался.
Можете ради интереса посмотреть на Cello, например: http://libcello.org/
Ok
> Для чего указателю тип, ??
> Заранее же известно что там будет, адрес объекта ..??Чтобы правильно реализовывать адресную арифметику. Например, инкремент указателя (не на void) сдвигает его не на байт, а на размер типа
int a[] = {0, 1, 2, 3, 4};
int *pa = a;std::cout << *pa << std::endl;
pa = pa + 1;
std::cout << *pa << std::endl;
pa = pa + 1;
std::cout << *pa << std::endl;std::cout << "size of int is " << sizeof(int) << std::endl;
Надо попробовать, ...