вопросы новичка о malloc и sizeof
Может кто-нибудь объяснить мне, почему мой вызов malloc с размером строки 6 возвращает размер 4 байта? Фактически, любой целочисленный аргумент, который я даю malloc, получает размер 4. Затем я пытаюсь скопировать две строки. Почему мой вывод скопированной строки (NULL)? Ниже приведен мой код:
int main()
{
char * str = "string";
char * copy = malloc(sizeof(str) + 1);
printf("bytes allocated for copy: %d\n", sizeof(copy));
while(*str != '\0'){
*copy = *str;
str++;
copy++;
}
copy = '\0';
printf("%s\n", copy);
}