c++动态数组

来源:百度知道 编辑:UC知道 时间:2024/07/01 02:01:09
从网上知道这是动态数组,下面这段程序是不是开辟了ID个大小为Num的内存,好像是二维数组一样?如果是的话,怎么往内存里存数,指针怎么移动?例如先存[0][0]..[1][0]....[ID][0],再存[0][1]..[1][1]....[ID][1],程序怎么样
先谢谢各位高手了,差不多就把分给你
struct file **p;
p=file **)malloc(sizeof(file *)*ID);
for(i=0;i<ID;i++)p[i]=(file *)malloc(sizeof(file)*Num);

struct FILE **p;
p=(FILE**)malloc(sizeof(FILE *)*ID);
for(i=0;i<ID;i++)p[i]=(FILE *)malloc(sizeof(FILE)*Num);

申请后 就可以想使用二维数组一样读写这个动态数组了
比如 p[2][7]=fopen("test.txt","w");

存取直接使用:
p[i][j]格式即可。
因为 p[i][j]在编译时会编译成 p[i]的地址 + j
就刚好符合了。