[問題] 字串反轉問題
void reverse(char[]);
int main()
{
char *str="12345";
reverse(str);
puts(str);
free(str);
system("pause");
return 0;
}
void reverse(char str[])
{
unsigned int i,j=strlen(str)-1;
for(i=0;i<j;++i,--j)
{
char temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
執行後發生錯誤
爬文後有人說char *str="12345";
只能讀 不能改
不太明白..會什麼指到的值不能改?!
這個宣告 也是分配一塊記憶體存"12345\0"不是嗎?!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.58.27
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1509281194.A.C04.html
推
10/29 20:58,
6年前
, 1F
10/29 20:58, 1F
→
10/29 20:59,
6年前
, 2F
10/29 20:59, 2F
→
10/29 21:00,
6年前
, 3F
10/29 21:00, 3F
推
10/29 21:14,
6年前
, 4F
10/29 21:14, 4F
→
10/29 22:04,
6年前
, 5F
10/29 22:04, 5F
推
10/30 01:15,
6年前
, 6F
10/30 01:15, 6F
→
10/30 01:40,
6年前
, 7F
10/30 01:40, 7F
→
10/30 01:41,
6年前
, 8F
10/30 01:41, 8F
推
10/30 10:34,
6年前
, 9F
10/30 10:34, 9F
→
10/30 10:34,
6年前
, 10F
10/30 10:34, 10F
推
10/30 11:14,
6年前
, 11F
10/30 11:14, 11F
推
10/30 11:16,
6年前
, 12F
10/30 11:16, 12F