| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1849 人关注过本帖, 1 人收藏
标题:闲来无事,出个小题。答对者给分 大神请忽略 不喜勿喷
只看楼主 加入收藏
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h>

typedef int A[2][3];
A *p = (A*)malloc(sizeof(A));

int main()
{
    (*p)[1][2] = 6;
    printf("%d\n", (*p)[1][2]);
    
    return 0;
}


人生是一场错过 愿你别蹉跎
2013-04-01 18:34
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:10 
我是新手...
程序代码:
#include <stdio.h>
#include <malloc.h>

int main() {
    int *p, i, j;
    p = (int *)malloc(100);
    for(i = 0; i < 2; i++)
        for(j = 0; j < 2; j++) {
            *(p + 2 * i + j) = i;
            printf("%d\n", *(p + 2 * i + j));
        }
    free(p);
    return 0;
}  


[ 本帖最后由 Susake 于 2013-4-1 20:23 编辑 ]

仰望星空...........不忘初心!
2013-04-01 18:50
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
搞定,把分给我吧...

[ 本帖最后由 Susake 于 2013-4-1 20:23 编辑 ]

仰望星空...........不忘初心!
2013-04-01 18:53
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
不管几维的  、不都是一片连续内存吗

DO IT YOURSELF !
2013-04-01 19:43
好聚好散
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:138
专家分:123
注 册:2012-12-4
收藏
得分:0 
了,

无节操,无真相
2013-04-01 19:49
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:0 
回复 楼主 laoyang103
#include <stdio.h>
#include <malloc.h>
main()
{int m,n,**a,i,j;
m=4;n=5;
a=(int **)malloc(sizeof(int *)*m);
a[0]=(int *)malloc(sizeof(int)*m*n);
for(i=1;i<m;i++)
   a[i]=a[i-1]+n;
for(i=0;i<m;i++)
    for(j=0;j<n;j++)
       a[i][j]=10*i+j;
for(i=0;i<m;i++)
    {
      for(j=0;j<n;j++)
         printf("%5d",a[i][j]);
     printf("\n");
     }
}

[ 本帖最后由 helloUJS 于 2013-4-3 07:27 编辑 ]
2013-04-01 20:20
uushuo
Rank: 2
等 级:论坛游民
帖 子:13
专家分:31
注 册:2009-1-22
收藏
得分:0 
这个不能直接分配吧,先为所有的行指针申请指针的内存,然后在为每一行的元素申请内存。
程序代码:
    int **pInt2 = (int **)malloc(10*sizeof(int*));
    int *pTmp = (int*)malloc(10*10*sizeof(int));
    for(i=0;i<10;i++) pInt2[i]=pTmp+10*i;

但这样跟直接定义数组不一样,这样的话pInt2与pInt2[0]不相等啊。
静待楼主给出答案
2013-04-01 21:15
蓝xuan
Rank: 4
等 级:业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
收藏
得分:0 
#include <stdlib.h>;
#include <stdio.h>;

struct vv{
        int a[3][3];
};

int main()
{
        struct vv * tmp = (struct vv *)malloc(sizeof(struct vv));

        //.................

        free(tmp);

        return 0;
}
2013-04-01 22:10
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
int *p;
p=(int *)malloc(sizeof(int));

Maybe
2013-04-01 22:36
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:0 
可以将数组定义在一个结构体里,让后直接分配这个结构体的空间
2013-04-01 22:50
快速回复:闲来无事,出个小题。答对者给分 大神请忽略 不喜勿喷
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.094588 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved