| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 781 人关注过本帖
标题:使用calloc 編譯錯誤:下標要求數組或者指針類型?
取消只看楼主 加入收藏
xiestone1992
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2012-2-8
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:2 
使用calloc 編譯錯誤:下標要求數組或者指針類型?
main function沒問題,我是使用main function接受參數的方法得到整數size 的,總之我只是不會怎麼用calloc。就是用calloc分配內存之後,怎麼使用這個數組?



void flip_h(int * * arr, int size){
   char * arr2 ;//聲明一個char類型指針
  

   int r, c,r1,c1;
  
   arr2 = (char * )calloc (size , size); //分配一個size * size 那麼大的內存
  

   r = r1 = 0;
   c = c1 = 0;  
     while(r<size) {
       c=0;c1=0;
       while(c < size){
        arr2[r1][c1++]=arr[r][c++];//編譯錯誤:下標要求數組或者指針類型?
       }
       r++;
       r1++;
    }
   
   r=0;
   r1=0;
   c=0;
   c1=size-1;
   while(r<size) {
       c=0;c1=size-1;
       while(c<size){
       arr[r][c++]=arr2[r1][c1--];  //編譯錯誤:下標要求數組或者指針類型?
       }
       r++;
       r1++;
    }
  return;
  free( arr2);
}
搜索更多相关主题的帖子: function 
2012-05-05 23:21
xiestone1992
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2012-2-8
收藏
得分:0 
回复 4楼 love24114
可是奇怪就是奇怪在這裡,arr是在另一個function裏面定義好的,代碼如下


int ** create_array(int size){
  int j ;
  size_t s = (size_t) size;
  int ** arr = (int **) calloc(sizeof(int *), size);
  if(arr != NULL)
    for(j=0; j<size; j++)
      arr[j]=(int *)calloc(sizeof(int), size);
  return arr;
}



當我用 char arr2[5][5]來聲明一個二維數組的時候,卻可以編譯成功?說明arr已經可以被當做一個二維數組啦,我的問題就是這麼讓arr2也可以這樣?
2012-05-06 14:03
xiestone1992
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2012-2-8
收藏
得分:0 
問題得到解決了,我自己明白了,謝謝大家
2012-05-06 14:13
快速回复:使用calloc 編譯錯誤:下標要求數組或者指針類型?
数据加载中...
 
   



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

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