指针内存分配问题

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
    char buf[128]; //C可以在栈上分配内存
    int i;
    int j = 0;

    char *p2 = NULL; //C可以在栈上分配内存
    char *p1 = NULL;

    p1 = &buf[0]; //不断的改变p1的值相当于不断改变指针的指向
    p1 = &buf[1];
    p1 = &buf[2];

    for(i = 0; i < 10; i++)
    {
        p1 = &buf[i];
    }

    p2 = (char *)malloc(100); //堆上分配内存
    strcpy(p2, "abcdef1234454");

    for(i = 0; i < 10; i++)
    {
        p1 = p2+i; //p1 = &p2[i];
        printf("%c ", *p1);
    }
    
    return 0;
}

内存分配和指针的指向

posted @ 2017-04-08 15:03  Liu_Jing  Views(150)  Comments(0)    收藏  举报