在 main 函数的最后一行,为什么 &word2word2 不同?假设正确的标题就位。谢谢!

int main()
{
    char word1[20];
    char *word2;

    word2 = (char*)malloc(sizeof(char)*20);

    printf("Sizeof word 1: %d\n", sizeof (word1));
    printf("Sizeof word 2: %d\n", sizeof (word2));

    strcpy(word1, "string number 1");
    strcpy(word2, "string number 2");

    printf("%s\n", word1);
    printf("%s\n", word2);
    printf("Address %d, evaluated expression: %d\n", &word1, word1);
    printf("Address %d, evaluated expression: %d\n", &word2, word2);
    //Why this one differ?
}

最佳答案

word2 是您使用 malloc 分配的内存地址。
&word2 是名为 word2 的变量的地址。

关于c - C中的内存地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14837709/

10-12 20:21