数组拷贝与堆栈拷贝区别

·    char buf[] = "abc"; //buf指向常量区“abc”,拷贝到栈区buf,编译器检测到是数组,地址0x11,//注意这里没有指向关系

    char *p = NULL;
    char *q = NULL;
    int i = 0;

    q = (char *)malloc(100);  //q分配100个字节在堆里,q指向0x11这片空间

    if (q == NULL)
    {
        return -1;
    }
    strcpy(q, "abcdefg"); //把abcdefg拷贝到q所指向的内存空间 //注意这里拷贝有指向关系,这里拷贝不是指向q所在的内存空间,而是拷贝到q所指向的内存空间

猜你喜欢

转载自blog.csdn.net/u013988442/article/details/83623193
今日推荐