亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
打印 上一主題 下一主題

二重指針的問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
11 [報(bào)告]
發(fā)表于 2010-08-19 23:53 |只看該作者
回復(fù) 10# zhangsuozhu


     ppi = &pi   
  
    *ppi = pi

兩種寫法編譯都通過(guò)。第二種還是段錯(cuò)誤。

論壇徽章:
0
12 [報(bào)告]
發(fā)表于 2010-08-20 00:12 |只看該作者
本帖最后由 zhangsuozhu 于 2010-08-20 00:14 編輯

第二種我沒(méi)有說(shuō)全完.

因?yàn)閜pi沒(méi)初始化.所以ppi指向的地址是一個(gè)不確定的值. 用*ppi = pi 故然會(huì)出錯(cuò).

即:如果ppi = 0; 就相當(dāng)于 *((int*)0) = pi;
所以必須讓ppi指向的地址可以訪問(wèn).
為了好理解可以這樣:
  1. ppi = malloc(sizeof(void *));
  2. *ppi = pi;
  3. printf("%d\n\n", **ppi);
  4. free(ppi);
復(fù)制代碼

論壇徽章:
0
13 [報(bào)告]
發(fā)表于 2010-08-20 00:46 |只看該作者
回復(fù) 12# zhangsuozhu


    {:3_194:}   還錯(cuò)啊。
  1. #include "stdio.h"
  2. main()
  3. {
  4.     int i;
  5.     int *pi=NULL;
  6.     int **ppi;

  7.     i = 1;
  8.     pi = &i;

  9.     ppi = malloc(sizof(void *));
  10.     *ppi = (pi);
  11.     free(ppi);

  12.     printf("i is %d\n\n",i);
  13.     printf("pi is %d\n\n",*pi);
  14.     printf("ppi is %d\n\n",**ppi);
  15. }
復(fù)制代碼
[arch@sky cprog]$ cc pointer.c
pointer.c: 在函數(shù)‘main’中:
pointer.c:11:11: 警告:隱式聲明與內(nèi)建函數(shù)‘malloc’不兼容
pointer.c:11:24: 錯(cuò)誤:expected expression before ‘void’
pointer.c:13:5: 警告:隱式聲明與內(nèi)建函數(shù)‘free’不兼容

論壇徽章:
0
14 [報(bào)告]
發(fā)表于 2010-08-20 01:08 |只看該作者
本帖最后由 churchmice 于 2010-08-20 01:15 編輯

回復(fù) 13# cu養(yǎng)豬小能手


沒(méi)看懂你到底想干啥

至于那么麻煩么?

  1. #include "stdio.h"
  2. int main (int argc, char *argv[])
  3. {
  4.   int i;
  5.   int *pi = NULL;
  6.   int **ppi;
  7.   i = 1;
  8.   pi = &i;
  9.   ppi = π
  10.   printf ("i is %d\n\n", i);
  11.   printf ("pi is %d\n\n", *pi);
  12.   printf ("ppi is %d\n\n", **ppi);
  13.   return 0;
  14. }
復(fù)制代碼
你的代碼需要改成下面這樣的

  1.     #include <stdio.h>
  2.     #include <string.h>
  3.     #include <stdlib.h>
  4.     int main(int argc,char *argv[])
  5.     {
  6.         int i;
  7.         int *pi=NULL;
  8.         int **ppi;
  9.    

  10.         i = 1;
  11.         pi = &i;
  12.   

  13.        ppi = (int **)malloc(sizeof(int **));
  14.        *ppi = pi;
  15.   

  16.        printf("i is %d\n\n",i);
  17.        printf("pi is %d\n\n",*pi);
  18.        printf("ppi is %d\n\n",**ppi);
  19.        free(ppi);
  20.        return 0;
  21.    }
復(fù)制代碼

論壇徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
15 [報(bào)告]
發(fā)表于 2010-08-20 08:57 |只看該作者
汗樓上..{:3_194:}

論壇徽章:
0
16 [報(bào)告]
發(fā)表于 2010-08-20 08:57 |只看該作者
回復(fù) 13# cu養(yǎng)豬小能手


sizeof   你寫成了 sizof

free早了!等使用完再free

論壇徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
17 [報(bào)告]
發(fā)表于 2010-08-20 08:58 |只看該作者
說(shuō)錯(cuò)了...
是汗樓上..以為就一頁(yè)的..{:3_199:}

論壇徽章:
0
18 [報(bào)告]
發(fā)表于 2010-08-20 09:04 |只看該作者
指針未分配地址就間接運(yùn)算了,所以會(huì)出錯(cuò)。

論壇徽章:
0
19 [報(bào)告]
發(fā)表于 2010-08-20 09:08 |只看該作者
  1. int **pi;
  2. *pi = &pi;
復(fù)制代碼
  1. int **ppi = &pi;
復(fù)制代碼
是不同的。

  1. int **ppi = &pi;
  2. 等同于
  3. int **ppi;
  4. ppi=&pi;
復(fù)制代碼

論壇徽章:
0
20 [報(bào)告]
發(fā)表于 2010-08-20 13:55 |只看該作者
zhangsuozhu (都市牧馬人)

對(duì)你的回答,完全贊同和贊美!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP