⑴ 指针中的数组为什么会编译错误
int* String(string a1,int Long)
{
//cout<<"String";
int* output=new int[Long] ; //这里要分配空间才可以用啊,不然,未分配地址的指针是野指针,使用会出异常的!
int* chuyu(int* a1,int* b1)
{
int i,j,Long=0;
// int* c=new int [XXX] ; //长度你需要计算吧
// return c; 这个函数一样,而且,你没有写完整啊,必须要有一个指针返回才可以!
}
⑵ C++语言指向函数的指针编译错误
#include<stdio.h>
#include<stdlib.h>
int main()
{
void operate(int,int,int(*)(int ,int));
int max(int , int),min(int , int );
int a,b;
printf("Please input two numbers:\n");
scanf("%d %d",&a,&b);
operate(a,b,max);
system("pause");
return 0;
}
int max(int a,int b)
{
if(a>b)
return(a);
else
return(b);
}
int min(int a,int b)
{
if(a>b)
return(b);
else
return(a);
}
void operate(int x,int y,int(*fun)(int ,int ))
{
printf("%d\n",(*fun)(x,y));
}
⑶ keil C 编程初始化指针函数数组时出错
研究了一下这个问题。Keil报non-address/-constant initializer是正确的,因为advanceModeFun和advModeSetting是在同一级别初始化的,此时后者不可能知道前者的真实地址。
所以你的这个问题,暂时来看有两种解决方法:
其一,就是像你所说的,用地址确定的函数声明(例如advMode1SetAdj)来赋给advModeSetting的元素。当然这种方法你是不喜欢的。
其二,就是在运行时将advanceModeFun的元素赋给advModeSetting,达到你的需求。例如:
void(*advModeSetting[])(void)={
//advanceModeFun[0].KeySetting,
advMode1SetAdj,
advMode2SetAdj,
};
voidmain()
{
advModeSetting[0]();
advanceModeFun[1].Display();
advModeSetting[0]=advanceModeFun[1].KeySetting;
advModeSetting[0]();
while(1);
}
这段例程中,第一个advModeSetting[0]()实际调用advMode1SetAdj(),第二个advModeSetting[0]()实际调用advMode2SetAdj()。
⑷ 我想用指针数组利用scanf输入五个字符串在输出,怎么编译时老是显示 LIBCD.lib(crt0.obj) : error LNK2001
使用前应用malloc函数申请空间
⑸ c语言,函数返回数组指针出错为什么啊
C语言里不可以返回数组,只能返回指针
函数内的数组是局部变量,离开函数后就会离开了其作用域,原则上讲就会被销毁(实际是编译器及编译器选项而定),自然不能被回传
⑹ 函数指针数组赋值时出现错误
声明是在赋值的前面吗。这个用法实在是太NB了,用了十年c++还没见过这种玩法,拜服