我正在使用指针和malloc()
来练习分配内存,但是有一个有关指针的观察是,为什么strcpy()
可以接受str
变量而不需要*
:
char *str;
str = (char *) malloc(15);
strcpy(str, "Hello");
printf("String = %s, Address = %u\n", str, str);
但是对于整数,我们需要使用 * 来给 str 赋值。
int *str;
str = (int *) malloc(15);
*str = 10;
printf("Int = %d, Address = %u\n", *str, str);
我真的很困惑为什么strcpy()
接受str
,因为在我自己的理解中,"Hello"
将被传递到str
的内存位置,这会导致一些错误。
%p
打印指针。同时,对于int * str
,使用malloc(15)
可能会在后面造成问题。 - Sourav Ghosh