C语言动态分配内存的指针问题

int main(){
    int *p = (int*) malloc(3 * sizeof(int));
    int *p2 = (int*) malloc(3 * sizeof(int));
    int i = 0;
    int j = 0;

    for(; i<3; i++){
        *(p+i) = i;
        printf("%d\n", *(p+i));
    }

    printf("--------------------------\n");

    for(; j<3; j++){
        // *p2++ = j;
        *p2 = j;
        p2++;
        printf("%d\n", *p2);
    }
}


Why?

阅读 1.4k
1 个回答

第二个循环里,你赋值给p2,打印的却是(p2+1)。把p2++放到最后面。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进