malloc动态内从分配
b = (int*)malloc(sizeof(int) * a);请问这个b++是加一个int的单位,还是加 int*a个单位? int b的类型决定了它自增一次的步长;比如char* 就一次加一个地址单元(char变量1字节);int* 就加4个地址单元(int变量占4字节)。
b步长与动态分配内存没太大的关系,内存都是用来存储数据的,怎么用是用户的事,你可以一个字节一个字节的访问,也可以4字节的访问。
b是一个指向int类型的指针,每个合法int单元就4字节,而b指向这片内存单元首地址;
当要指向下一个int类型时,就需要从当前地址加4,跳到后续的内存地址起点。
页:
[1]