new和delete以及malloc和free 二维数组

来源:互联网 发布:淘宝客推广方式 编辑:程序博客网 时间:2024/06/07 23:42
int main(){char c,d;scanf("%c",&c);scanf("%c",&d);//如果输入了一个字符后按回车,则d为回车//scanf("%c%c",&c,&d);//同上printf("%c ",c);printf("%c ",d);int N;int M;scanf("%d",&N);scanf("%d",&M);char **img;img = (char **) malloc(sizeof(char*)*N);//img = new char *[N];char tmp;for (int i = 0; i < N; i++){img[i] = (char*) malloc(sizeof(char)*M);//img[i] = new char[M];//scanf("%s",img[i]);//如果要忽略末尾的换行符,则用此方法for (int j = 0; j < M;j++){scanf("%c",&img[i][j]);}scanf("%c",&tmp);//如果是一个个字符的输入,换行后再输入下一行,则要把这个换行符单独处理掉}for (int i = 0; i < N; i++){free((void *)img[i]);//free(img[i]) //runtime error}free ((void *)img);//free(img)//normal/*for(int i=0;i<N;i++){ delete[] img[i]; } delete []img;*/return 0;}

0 0
原创粉丝点击