程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-C語言問題,求大神指點迷津

c語言-C語言問題,求大神指點迷津

編輯:編程解疑
C語言問題,求大神指點迷津

#include
#include
void main()
{
char *p;
p = (char *)malloc(sizeof(char));
char *px;
px = p;
p = "sajjjmmij";
printf("%s,%s", p, px);
system("pause");

}
px輸出是亂碼,為什麼?就想用這種方式讓兩個指針指向同一片字符串地址

最佳回答:


注釋都寫在代碼裡了

 #include<iostream>
using namespace std;
void main()
{
    char *p;
    p = (char *)malloc(10*sizeof(char));//你之前的只申請了一個字符的空間,不夠放
    char *px;
    px = p;
    strcpy(p, "sajjjmmij");//這裡要用strcpy,否則的話你的p指針指向了新的一個字符串(位於常量存儲區)
    //p = "sajjjmmij";     //而你的px指針還指著原來malloc的空間,輸出出來是垃圾值
    printf("%s,%s", p, px);
    free(px);//malloc以後記得free
    system("pause");
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved