1 Востаннє редагувалося Ярослав (13.01.2013 12:02:23)

Тема: Як вказати одному покажчику адресу іншого?

Є певний масив arr1
Є покажчик, який вказує на перший елемент цього масиву
*p = arr1;
Ініціалізація цього покажчика відбувається під час визначення функції
int strend(char *p)
Задача полягає в тому, щоб в середені функції ввести іще один покажчик, який би вказував на той самий елемент масиву, що і *p

2

Re: Як вказати одному покажчику адресу іншого?

Досі цікавить відповідь на це питання.

3

Re: Як вказати одному покажчику адресу іншого?

Можна використати посилання на покажчик.

char *str = "Ukraine";
char *ptr = str;
char *&rptr = str; // посилання на покажчик

Ще як аналог може бути покажчик на покажчик

char** const rptr = &str;

Наприклад:

#include <iostream>
int main () {
    char *word1 = "Slava ";
    char *word2 = "Ukraini!";
    char *ptr = word1;
    char *&rptr = word1;
    rptr = word2;
    std::cout << ptr << str1 << std::endl;
}

Програма друкує "Slava Ukraini!" тому що ptr є покажчиком типу char який вказує на рядок "Slava". rptr є посиланням на покажчик типу char, тому коли ви міняєте його (покажчик, а не те на що він вказує) ви міняєте word1. І таким чином ptr вказує на "Slava" a word1 вказує на "Ukraini!"

Ось тут все детально описано
http://www.codeproject.com/Articles/489 … to-Pointer

4

Re: Як вказати одному покажчику адресу іншого?

Спробую, відпишусь.

5

Re: Як вказати одному покажчику адресу іншого?

Дякую за розгорнуту відповідь.
Насправді, я просто був неуважним.
Я намагався надати покажчику *ptr адресу самого покажчику &t, а потрібно було надавати адресу того, на що він вказує &*t.

6

Re: Як вказати одному покажчику адресу іншого?

А можно було взагалі просто:
ptr = t...