我是C编程的新手,有一个我无法解决的问题
从包含大量信息的文件,结构如
“id”\ t 2048次'0'或'1'
例如:
int procura(int *v, int *c, int tam){
int i,j,t;
FILE *fp;
fp=fopen("fich.txt","r");
v=(int*)malloc(sizeof(int));
c=(int*)malloc(sizeof(int));
while(!feof(fp)){
fscanf(fp,"%d",&v);
}
t = sizeof(v)/sizeof(*v);
for(i=0;i<tam;i++){
for(j=0;j<t;j++){
if(c[i]==v[j])
return 1;
else
return 0;
}
}
我将从用户引入的新序列中找到3个最相似的元素,这些元素具有与用户引入的序列相同的大小。
E.g。用户介绍的序列,010101,程序必须显示如
这些是来自每行中所有2048'0''1'的3个最相似的序列。
我希望问题得到很好的解释。 我在下面有这个代码,但它没有解决问题。
任何人都可以帮助我吗?
感谢。
int main(){
int *v, *c;
int i,tam,a;
printf("array size\n");
scanf("%d",&tam);
c=(int*)malloc(tam*sizeof(int));
printf("Seq\n");
for(i=0;i<tam;i++){
scanf("%d",&c[i]);
}
printf("%d",procura(v,c, tam));
return 0;
}
EXECUTE format('SELECT $1 FROM users
WHERE name=''name''')
USING 'user_id';
}
答案 0 :(得分:3)
一些事情:
v=(int*)malloc(sizeof(int));
c=(int*)malloc(sizeof(int));
这些会覆盖指针,因此您会丢失原始v
和c
。
sizeof(v)/sizeof
是语法错误
获取带有sizeof
的指针大小会返回指针的大小,而不是指向
您重新分配上面的v
和c
会使这些变量只指向单 int
的内存,然后循环遍历{ {1}}元素意味着你超出了记忆的界限
使用tam
将指针传递给指针
没有错误检查,如果您无法打开文件会怎样?
您的功能会在第一次fscanf(fp,"%d",&v)
检查后立即返回,并且无条件返回
可能还有更多。