Человек, указатели продолжают доставлять мне неприятности.Я думал, что понял концепцию. (По сути, вы будете использовать * ptr, когда хотите манипулировать фактической памятью, сохраненной в том месте, на которое указывает ptr. Вы просто используете ptr, если вы хотите переместить этот указатель, выполняя такиекак ptr ++ или ptr--.) Итак, если это так, если вы используете звездочку для манипулирования файлами, на которые указывает указатель, как это работает:
char *MallocAndCopy( char *line ) {
char *pointer;
if ( (pointer = malloc( strlen(line)+1 )) == NULL ) {
printf( "Out of memory!!! Goodbye!\n" );
exit( 0 );
}
strcpy( pointer, line );
return pointer;
}
malloc возвращает указатель, поэтому я понимаю, почему «указатель» в условии if не использует звездочку.Однако в функции strcpy она отправляет СОДЕРЖАНИЕ строки в СОДЕРЖАНИЕ указателя.Разве это не должно быть:
strcpy( *pointer, *line);
?????Или я правильно понимаю указатели, и именно так работает функция strcpy?