注册 登录
编程论坛 C++教室

关于二维数组new分配问题

烟雾中的迷茫 发布于 2012-02-17 21:17, 484 次点击
程序代码:
#include<iostream>
using namespace std;

int main(int argc,char* argv[])
{
     int **m,i,j;
     m=new int*[2];
     for(i=0;i<2;i++)
         m[i]=new int[1];
     memset(m[0],0,1);
     memset(m[1],0,1);
     for(i=0;i<2;i++)
         for(j=0;j<1;j++)
             scanf("%d",&m[i][j]);

    for(i=0;i<2;i++)
         for(j=0;j<1;j++)
             printf("%d\n",&m[i][j]);

     for(i=0;i<2;i++)
         delete[] m[i];
     delete []m;
    return 0;
}
请问为什么输出后,不是对于的结果呢?
3 回复
#2
rjsp2012-02-18 08:35
你这代码……,懒得和你说。只说错误吧,0. 这不是二维数组  1. memset只设置了int的一个字节  2. printf输出的不是m[i][j]的值,而是其地址
#3
烟雾中的迷茫2012-02-18 12:40
汗,好吧 我错了
#4
donggegege2012-02-21 13:29
确实很乱,就设一个数字,还用 memset, int **m,i,j;这又是什么啊,用那么多**干吗。 printf("%d\n",&m[i][j]);&是取地址符


1