Форум программистов, компьютерный форум CyberForum.ru

С++ - указатель на функцию. - C++

Восстановить пароль Регистрация
 
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
16.10.2009, 23:08     С++ - указатель на функцию. #1
Вот такой вот кодик:

C++
1
2
3
4
5
6
7
int main() {
 
int *x = (int*) printf("%s","fuck!!!");
cout << *x;
getch();
    
}
Выводит строку,но потом следует ошибка Unhandled win32 exception;
Вопрос - можно ли манипулировать аргументами внутри функции printf() через её адрес ? Как по адресу объекта можно узнать его содержимое ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2009, 23:08     С++ - указатель на функцию.
Посмотрите здесь:

Как передать параметр типа "указатель на указатель" в функцию? C++
Указатель на указатель на функцию C++
Как передать указатель на функцию в функцию C++
C++ В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель
Зачем передавать в функцию X указатель на callback функцию, если последняя ВНЕШНЯЯ и вызовется БЕЗО ВСЯКОГО УКАЗАТЕЛЯ? C++
C++ Указатель на функцию
Работа с файлом (передать указатель на файл в функцию, вернуть указатель на файл из функции) C++
указатель на функцию C++
Указатель на функцию C++
Передать в неуправляемую функцию указатель на указатель C++
Передача массива в функцию используя указатель на функцию C++
C++ Указатель на функцию возвращающую указатель

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2775 / 1588 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
16.10.2009, 23:17     С++ - указатель на функцию. #2
Цитата Сообщение от Welemir Посмотреть сообщение
Выводит строку,но потом следует ошибка Unhandled win32 exception;
Логично. Результат printf - количество выведенных символов или отрицательное число при ошибке. Если привести это к int*, получается указатель неизвестно куда. То есть известно куда, но там ничего хорошего нет.
Цитата Сообщение от Welemir Посмотреть сообщение
Вопрос - можно ли манипулировать аргументами внутри функции printf() через её адрес ?
???
Цитата Сообщение от Welemir Посмотреть сообщение
Как по адресу объекта можно узнать его содержимое ?
Тут же и пример: cout << *x; // где *x - объект, на который указывает x.
Goodwin98
 Аватар для Goodwin98
2516 / 812 / 9
Регистрация: 31.05.2009
Сообщений: 1,671
16.10.2009, 23:33     С++ - указатель на функцию. #3
Аргументы передаются функции при ее вызове, а не находятся внутри ее.
К тому же если вы думаете, что x станет аддресом функции, то вы ошиблись.
Нужно хотя бы так делать:
C++
1
2
int* x =(int*)  printf;
cout <<(int) x;
Цитата Сообщение от Welemir Посмотреть сообщение
по адресу объекта можно узнать его содержимое ?
Нельзя если вы не храните где-то эту информацию.
Yandex
Объявления
16.10.2009, 23:33     С++ - указатель на функцию.
Ответ Создать тему
Опции темы

Текущее время: 03:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru