Я ПОНИМАЮ, ЧТО ЭТО ПРОГРАММА НЕ РАСПРОСТРАНЯЕТСЯ ДОПОЛНИТЕЛЬНОЙ ПАМЯТЬЮ.Нужно объяснять переменную Word2
Что мне нужно, это описание объяснения того, что происходит при выполнении этого кода.
Я положил «Поскольку выделено только 4 пробела, ему не хватает места, чтобы он вызывал ошибку». Что мне не кажется правильным. Благодарю.
#include <stdio.h>
#include <string.h>
int main()
{
char word1[20];
char *word2;
word2 = (char*)malloc(sizeof(char)*20);
printf("Sizeof word 1: %d\n", sizeof (word1)); //This line outputs 20
printf("Sizeof word 2: %d\n", sizeof (word2)); //This line outputs 4
//before & after I used malloc
strcpy(word1, "string number 1");
strcpy(word2, "string number 2"); <---- What is this doing
printf("%s\n", word1);
printf("%s\n", word2);
}
. Еще один вопрос ... действительно ли код выделяет память точно так же для word1/word2? Добавлено в динамическое распределение. – juice
Не [точно] (http://stackoverflow.com/a/8385488/1944441) –
Прекрасное спасибо. – juice