哎呀,指针一直让我头疼。我以为我理解了这个概念。(基本上,当你想要操作指针所指向的实际内存保存位置时,你会使用*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函数中,它将line的内容发送到指针的内容。难道不应该是:
strcpy( *pointer, *line);
还是我的指针理解有误,strcpy函数就是这样工作的吗?