LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

...то line[] = «Hello world», и именно это значение должно быть скопировано в p? Верно ли это?

Да, совершенно верно.

p - pointer, то есть получается что strcpy копирует адреса каждой буквы из line в p? или какой именно процесс происходит?

Нет, ни в коем случае. p — pointer, т. е. он указывает на начало некоторого куска памяти, т. е. массива байт (предварительно полученного у ОС функцией alloc()).

Функция strcpy() принимает два указателя на начала соответствующих кусков памяти (массивов байт) и копирует байты подряд из второго в первый, пока не встретит байт, равный нулю (в Си — маркер конца строки). Внимание: «байт, равный нулю» — это не то же самое, что «байт, кодирующий цифру 0».

Исправление intelfx, :

...то line[] = «Hello world», и именно это значение должно быть скопировано в p? Верно ли это?

Да, совершенно верно.

p - pointer, то есть получается что strcpy копирует адреса каждой буквы из line в p? или какой именно процесс происходит?

Нет, ни в коем случае. p — pointer, т. е. он указывает на начало некоторого куска памяти, т. е. массива байт (предварительно полученного у ОС функцией alloc()).

Функция strcpy() принимает два указателя на начала соответствующих кусков памяти (массивов байт) и копирует байты подряд из второго в первый, пока не встретит байт, равный нулю (в Си — маркер конца строки).

Исходная версия intelfx, :

...то line[] = «Hello world», и именно это значение должно быть скопировано в p? Верно ли это?

Да, совершенно верно.

p - pointer, то есть получается что strcpy копирует адреса каждой буквы из line в p? или какой именно процесс происходит?

Нет, ни в коем случае. p — pointer, т. е. он указывает на начало некоторого куска памяти (предварительно полученного у ОС функцией alloc()).

Функция strcpy() принимает два указателя на начала соответствующих кусков памяти (массивов байт) и копирует байты подряд из второго в первый, пока не встретит байт, равный нулю.