第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

【新手求助】關(guān)于c語言指針操作的問題

【新手求助】關(guān)于c語言指針操作的問題

C++
紅糖糍粑 2018-10-24 18:52:30
我在動態(tài)分配的內(nèi)存里保存了另一個變量的地址,然后再打印這個動態(tài)分配的內(nèi)存和另一個變量地址。 group2里面 base和p3的地址是一樣的,這個我理解,可是為什么 group1里的 buf和 p不一樣呢?#include <stdio.h>int main(int argc, char const *argv[]){    // group1     char buf[]="hello";    char *p=(char *)malloc(sizeof(char *));     *p=buf;    printf("buf=%p\n", buf);    printf("*p=%p\n", *p);         // group2     int base=1;    int *p3=(int *)malloc(sizeof(int *));     *p3=&base;    printf("base=%p\n", &base);    printf("*p3=%p\n", *p3);         return 0; }
查看完整描述

1 回答

?
臨摹微笑

TA貢獻1982條經(jīng)驗 獲得超2個贊

你有兩個選擇:

1 使用int * 指針
指針本質(zhì)上是一個可以使用"整數(shù)"表示的內(nèi)存地址值。所以需要一個int的指針,而不是一個char的指針, 嚴格來講應該使用 "uintptr_t" 類型,這里使用 "int *" 也行。

int *p = (int *)malloc(sizeof(int *));

*p 就是一個整數(shù),可以保存 "char *" 指針的值,你用的是 'char *',地址值被截斷了。

2 使用指針的指針

char **p = (char **)malloc(sizeof(char **));

=========
其實你這里的做法是 "不正確的"(注意看編譯警告), 你應該都使用指針的指針來做。


查看完整回答
反對 回復 2018-10-24
  • 1 回答
  • 0 關(guān)注
  • 517 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號