#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");
}