這有什麼代碼的問題(這是[0]正確打印改編,但我正在用改編的問題[1] ...打印一些奇怪的字符):問題爲char *值
using namespace std;
char ** setName() {
char * arr[2];
for (int i=0;i<2;i++)
arr[i] = (char*)malloc(100);
arr[0] = strdup("Robert");
arr[1] = strdup("Jose");
return arr;
}
int main()
{
char **arr;
arr = setName();
printf("First name is %s\n", arr[0]);
printf("Second name is %s\n", arr[1]);
return 0;
}
如果它很重要,我在Windows中使用Visual Studio 8運行此代碼。
你不需要malloc的,爲的strdup分配反正 – thumbmunkeys
世界你爲什麼混合'malloc'和'用C++代碼printf'使用了' std'命名空間?選擇一種語言並堅持使用它:C或C++。 –
使用'std :: vector',你會更快樂。 –