平时用strcpy的时候只管拿用.有一次忽然想到了strcpy的szDestination这个输出参数,我想不懂它是怎样实现输出的?如果要在调用函数中获一字符串,这个输出参数是一个双层char指针才对啊?如下代码:
// 这里的函数参数用到了双重指针
void getoutchar(char** szDest)
{
*szDest = (char*)malloc(50 * sizeof(char));
strcpy(*szDest, "这是一个获得字符串的输出参数!");
}
int main()
{
char* p = NULL;
// 通过指向指针的指针获得指针
getoutchar(&p);
printf("%s\n", p);
free(p);
return 0;
}
我怎么都想不出来想将一个字符串放到一个"一重指针"的输出参数输出的方法,所以我对strcpy获得字符串输出参数感到不解.希望朋友们给出答案.
// 这里的函数参数用到了双重指针
void getoutchar(char** szDest)
{
*szDest = (char*)malloc(50 * sizeof(char));
strcpy(*szDest, "这是一个获得字符串的输出参数!");
}
int main()
{
char* p = NULL;
// 通过指向指针的指针获得指针
getoutchar(&p);
printf("%s\n", p);
free(p);
return 0;
}
我怎么都想不出来想将一个字符串放到一个"一重指针"的输出参数输出的方法,所以我对strcpy获得字符串输出参数感到不解.希望朋友们给出答案.
解决方案 »
- Visual C++6.0中的函数提示窗口是如何实现?
- 如何将自己写的.ocx和自己写的.dll制作成 .cab 呢?
- 如何在属性表中让"next'按钮开始为disable状态?
- 设置一个全局钩子,当应用程序退出时,如何保证它所在的动态库不被卸载
- 高分求如何将一幅图保存成tiff格式?
- 使用C++已多年的程序员现正处于迷惑之中:
- VS2008调试程序崩溃后出现如下错误
- 关于MFC的GDI绘图恢复画刷的一些问题,望解答
- 请问:如何通过注册表查看c:是否共享?
- 谁有深入浅出MFC的简体版,那位有能力的大侠干脆作一个转换软件吧.
- 请问ListCtrl中item的数量最多是多少
- 百无头绪——.隔着几层对话框怎么设置OnTimer()
{
int i, len = 0;
len = strlen(str);
for(i = 0; i < len; i++){
*(szDest + i) = str[i];
}
}int main()
{
char* p = NULL;
char str[] = "abcdefg";
p = (char *)malloc(50 * sizeof(char));
memset(p, 0, 50);
getoutchar(p, str);
printf("%s\n", p);
free(p);
return 0;
}这样不就可以了