程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 指針-一個動態內存分配的問題,函數執行後p指向哪裡?

指針-一個動態內存分配的問題,函數執行後p指向哪裡?

編輯:編程綜合問答
一個動態內存分配的問題,函數執行後p指向哪裡?

一下是我的代碼:

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>

char *strcnp(char *sd,char *ds)
{
        char *q=sd;

        while((*ds++=*sd++)!='\0')
        NULL;
        return q;
}

int main()
{

        char *a[4]={"abc","def","whf","where"};
        printf("%d,%d\n",sizeof(a),sizeof(a[3]));
        char *p=NULL;
          p=(char *)malloc(strlen(a[0])+1);//若無此句,運行出現段錯誤
        strcnp(a[0],p); //此句執行過後,p指向哪裡?
        printf("%s\n",p);
        free(p);
        return 0;
}

最佳回答:


p根本沒有變,因為你的strcnp只能修改指針指向的內容,而不能修改指針本身地址。如果你想修改p的地址,需要傳遞char**

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved