[問題] 指標與陣列
看板C_and_CPP作者rosemary0401 (rosemary0401)時間13年前 (2011/05/12 23:45)推噓0(0推 0噓 6→)留言6則, 2人參與討論串1/3 (看更多)
欲將字串傳入foo,並改變字串的值,程式如下:
#include <iostream>
using namespace std;
void foo(char *szTest)
{
char *p;
for(p = szTest; *p != '\0'; p++)
{
*p = 'A';
}
}
void main()
{
char* szTest1 = "test";
char szTest2[5] = "test";
//Error
//foo(szTest1);
//OK
foo(szTest2);
cout << szTest2 << endl;
cin.get();
}
為什麼傳入szTest1會出錯,但是傳入szTest2是OK的呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.148.121
→
05/12 23:47, , 1F
05/12 23:47, 1F
→
05/12 23:48, , 2F
05/12 23:48, 2F
→
05/13 03:10, , 3F
05/13 03:10, 3F
→
05/13 03:11, , 4F
05/13 03:11, 4F
→
05/13 03:12, , 5F
05/13 03:12, 5F
→
05/13 03:12, , 6F
05/13 03:12, 6F
討論串 (同標題文章)