我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 怎么给数组分配空间....哪位蝈蝈帮菜鸟改下~ 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ neat /ni:t/ a. 整洁的,匀称的,纯净的 ]


怎么给数组分配空间....哪位蝈蝈帮菜鸟改下~

rt..........


[ 此贴被kenneygf在2006-11-27 20:42重新编辑 ]
顶端 Posted: 2006-11-27 19:17 | [楼 主]
windsheng4



性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 润新lolicon联盟
发贴: 884
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-07-12
最后登陆: 2008-04-07

5come5帮你背单词 [ indicate /'indikeit/ vt. 指点,引起注意,指出,表时,(用手势、灯光等)指示 ]


float **a,*p;
p = (int*)malloc(9*sizeof(float));
a = (int**)malloc(2*sizeof(float*));
  for(i = 0; i < c; i++)
    a = p + 4*sizeof(float);
忘了个P附空间了


[ 此贴被windsheng4在2006-11-27 23:16重新编辑 ]
顶端 Posted: 2006-11-27 19:53 | [1 楼]
disneycheng



性别: 帅哥 状态: 该用户目前不在线
头衔: Piano Prince
等级: 荣誉会员
发贴: 1971
威望: 1
浮云: 413
在线等级:
注册时间: 2005-12-16
最后登陆: 2008-06-29

5come5帮你背单词 [ oceania /əui'einjə/ n. 大洋洲 ]


....
数组是在堆栈中的一块内存.
不需要给他分配一块heap的内存....
你那个...汗....
顶端 Posted: 2006-11-27 20:05 | [2 楼]
windsheng4



性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 润新lolicon联盟
发贴: 884
威望: 0
浮云: 1105
在线等级:
注册时间: 2005-07-12
最后登陆: 2008-04-07

5come5帮你背单词 [ amaze /ə'meiz/ vt. 使惊讶,使吃惊 ]


明显LZ是想动态分配二维数组.......
顶端 Posted: 2006-11-27 20:09 | [3 楼]
kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ cape /keip/ n. 岬,海角 ]


Quote:
引用第1楼windsheng4于2006-11-27 19:53发表的:
float **a,*p;
for ( int i=0;i<3;i++)
{p=*a+i
  for(int j=0;j<3;j++)
  { t=(float *)malloc(sizeof(float)*3);
.......

float **a,*p;
for(int i=0;i<3;i++)
  {
    p=*a+i;
    for(int j=0;j<3;j++) p++=(float *)malloc(sizeof(float));
  }
free(a);

这个哇?


[ 此贴被kenneygf在2006-11-27 20:23重新编辑 ]
顶端 Posted: 2006-11-27 20:14 | [4 楼]
kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ print /print/ v. 印,铭刻,印刷,出版;n. 印迹,印刷,印刷业,印刷品,印刷字体,图片,版画 ]


顶端 Posted: 2006-11-27 20:17 | [5 楼]
kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ shilling /'iliŋ/ n. 先令(英国银币) ]


#include <stdio.h>
#include <math.h>
main()
{
int   i=0,j=0;
float **a,*b;
/*如果是在TC下运行 请添加
float *p=(float *)malloc(sizeof(float));
*p=cos(0.0);
free(p);
*/

for(i=0;i<2;i++)
  {
    b=*a+i;
    for(j=0;j<2;j++)
      {
      b=(float *)malloc(sizeof(float));
      scanf("%f",b);
      b++;
      }
  }


clrscr();

for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%f\t",*((*a)+(i*2+j)));
printf("\n");
}

getch();
}


蝈蝈帮我看下此程序错在哪儿了?

我是c菜鸟哈~

顶端 Posted: 2006-11-27 20:33 | [6 楼]
a-bomb



性别: 帅哥 状态: 该用户目前不在线
头衔: ‖四∷大∷淫∷魔∷之∷首‖
等级: 人见人爱
发贴: 3076
威望: 2
浮云: 1747
在线等级:
注册时间: 2004-03-31
最后登陆: 2015-06-12

5come5帮你背单词 [ comment /'koment/ vi. 评论;a. 评论,意见 ]


LS的动态二维数组做得实在有点不敢恭维
我来给你写了一个

Copy code
#include <stdio.h>
#include <malloc.h>

int main()
{
   int **a; /*注意这里是指针的指针*/
   int *p;

   int m;
   int n;

   int i, j, c=0;

   do
   {
       printf( "Input m=" );
       scanf( "%d", &m );
   }
   while( m < 1 );

   do
   {
       printf( "Input n=" );
       scanf( "%d", &n );
   }
   while( n < 1 );

   /************************************************
   * 以下四行动态分配数组
   *************************************************/
   a = ( int ** )malloc( m * sizeof( int * ) );
   /*
    这句分配的是一个指针数组
    也就是说,a 指向的这段内存空间里存放的是
    指针的值
   */

   for( i = 0; i < m; i++ )
   {
       p = ( int * )malloc( n * sizeof( int ) );    /*这句分配的才是数组*/

       a[ i ] = p;        /*给a的元素赋值,使它等于新分配的内存的地址*/
   }
   /*************************************************/


   /*************************************************
    这下面的就和一般的二维数组操作一样了 */
   
   for( i = 0; i < m; i++ )
   {
       for( j = 0; j < n; j++ )
           a[i][j] = ++c;
   }

   for( i = 0; i < m; i++ )
   {
       for( j = 0; j < n; j++ )
           printf( "a[%d][%d]=%-3d ", i,j , a[i][j] );
       printf( "\n" );
   }

   /**************************************************
    释放内存空间 */
   for( i = 0; i < m; i++ )
       free( a[i] );

   free( a );

   return 0;
}


总结一下:
1、要声明一个二重指针;
2、给二重指针分配内存空间,注意每一个元素应该是一个指针,即:指针数组;
3、再给指针数组里的每一个元素赋值,当然要先分配一块内存才得行哈
顶端 Posted: 2006-11-28 12:01 | [7 楼]
a-bomb



性别: 帅哥 状态: 该用户目前不在线
头衔: ‖四∷大∷淫∷魔∷之∷首‖
等级: 人见人爱
发贴: 3076
威望: 2
浮云: 1747
在线等级:
注册时间: 2004-03-31
最后登陆: 2015-06-12

5come5帮你背单词 [ confidence /'konfidəns/ n. 信心,信任 ]


上面的代码是在VC里写的哈
顶端 Posted: 2006-11-28 12:03 | [8 楼]
kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ respectable /ris'pektəbl/ a. 可敬的,值得尊敬的,相当好的,可观的 ]


多谢上面的蝈蝈~

嘎嘎~

我的头像都冒红眼啦~
顶端 Posted: 2006-11-28 13:34 | [9 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.009547(s) query 5, Time now is:11-23 21:55, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号