问题描述
解决方案
这段程序编译会报错吧:
cannot convert parameter 1 from 'char (*)[100]' to 'char **'
可以这样 试试看
#include
#include
#include
int getMemBuf(char*& p2)
{
char* tmp = NULL;
tmp = (char*)malloc(100);
strcpy(tmpaaabbbccc"");
p2 = tmp;return 0;
}
void main()
{
int i = 0;
char* buf;
getMemBuf(buf);
printf(""%sn"" buf);free (buf);system(""pause"");
}
解决方案二:
数组确实是相当于一级指针,但是是常量指针,其值不能被修改。
任何试图修改数组名的操作,会引起程序严重异常。
解决方案三:
数组名仅仅是“相当”于指针,而并非真的是指针,只是个常量(一个值为数组首元素地址的常量),所以不能进行++或者--运算。
而常量更是无法取地址的, 你使用的给数组名取地址它代表了数组本身可不是简单的二级指针
时间: 2024-12-03 04:39:25