上午看到一段代码,关于二级指针的,就看了看:
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
int main(int argc, char *argv[])
{
char *str = NULL;
GetMemory(str, 100);
strcpy(str,"Hello2222");
cout << str << endl;
return 0;
// sphere* s = new sphere();
// int x = s->hit();
// printf("x = %d\n",x);
// delete s;
// runCudaPart();
}
这段代码运行不会成功。
可以采用二级指针来达到目的。
修改,采用二级指针的代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
void GetMeory(char **p, int num)
{
*p = (char *)malloc(sizeof(char) * num);
//*p = new char[num]; //C++当中
}
int _tmain(int argc, _TCHAR* argv[])
{
char *str = NULL;
GetMeory(&str, 100);
strcpy(str,"Hello");
cout << str << endl;
return 0;
}
原题目地址:
点击打开链接