c语言 error C2061
代码如下,问题很多不过大多相似,求大神解答#include<stdio.h>#definelist_init_size100#definelistincrement10t...
代码如下,问题很多不过大多相似,求大神解答
#include <stdio.h>
#define list_init_size 100
#define listincrement 10
typedef int ElemType;
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
bool initSqList(SqList &L){
L.elem =(ElemType *)malloc(list_init_size*sizeof(ElemType));
L.length=0;
L.listsize =list_init_size;
return true;
}
bool insertSqList(SqList &L,int i,ElemType e){
L.elem [0]=e;
if(i<0||i>L.length)
printf("插入位置错误");
else if(L.length ==0){
L.elem[0]=e;
L.length ++;
}else {
for(int j=L.length -1;j>i;j--){
L.elem [j+1 ]=L.elem [j];}
L.elem [i]=e;
L.length ++;
}
return true;
}
bool printList(SqList &L)
{
for(int i=0;i<L.length ;i++){
printf("%d",&L.elem[i]);
}
return true;
}
代码如下
void main(){
SqList L;
int p,v;
initSqList(&L);
printf("输入要插入的位置和数字");
scanf("%d %d",&p,&v);
insertSqList(&L,p,v);
printList(L);
}
不好意思,复制了两边代码 展开
#include <stdio.h>
#define list_init_size 100
#define listincrement 10
typedef int ElemType;
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
bool initSqList(SqList &L){
L.elem =(ElemType *)malloc(list_init_size*sizeof(ElemType));
L.length=0;
L.listsize =list_init_size;
return true;
}
bool insertSqList(SqList &L,int i,ElemType e){
L.elem [0]=e;
if(i<0||i>L.length)
printf("插入位置错误");
else if(L.length ==0){
L.elem[0]=e;
L.length ++;
}else {
for(int j=L.length -1;j>i;j--){
L.elem [j+1 ]=L.elem [j];}
L.elem [i]=e;
L.length ++;
}
return true;
}
bool printList(SqList &L)
{
for(int i=0;i<L.length ;i++){
printf("%d",&L.elem[i]);
}
return true;
}
代码如下
void main(){
SqList L;
int p,v;
initSqList(&L);
printf("输入要插入的位置和数字");
scanf("%d %d",&p,&v);
insertSqList(&L,p,v);
printList(L);
}
不好意思,复制了两边代码 展开
1个回答
展开全部
既然参数是引用类型那么传参数的时候不能有&,否则就变成指针了
initSqList(L);
insertSqList(L,p,v);
initSqList(L);
insertSqList(L,p,v);
更多追问追答
追问
按你说的改了下还是显示原来的错误,还有就是如果不用&还能对表进行修改吗
追答
我这边没发现2061错误,可以运行,你把报错信息那一行复制过来看看
voi fun(int &a)
{
a++;
}
int a=10;
printf("%d\n",a);//10
fun(a);
printf("%d\n",a);//a就变成11了
要区分这种情况
void fun(int *a)
{
(*a)++;
}
int a=10;
printf("%d\n",a);//10
fun(&a);
printf("%d\n",a);//a就变成11了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询