我收到错误:"无效类型' long int [int] for array subscript"

时间:2018-02-20 19:18:35

标签: c int

在计算机科学中,我们得到了一些练习来学习c编码。 其中一个练习是创建一个函数copyField,它给出了3个参数:targetField sourceField和field of the field。

我们应该创建一个带有sourceField的函数(必须有long值) 并将其复制到targetField。

我的代码:

#include <stdio.h>
#include <stdlib.h>

//declaration of the function
long copyField(long targetField, long sourceField, int length);

int main(void){

  //sField will be variable afterwards
  /*sField equals sourceField; tField equals targetField; 
  len equals Length of sField 
  */

  long sField[]={12341234,2343233,3432424,4235252354,53254234};
  long tField[sizeof(tField)/sizeof(int)];
  int len=sizeof(sField)/sizeof(int);

 /*commented because I have to fix the error first
  copyField(tField,sField,len);
 */

 //print out the targetField

  for(int i=0;i<=sizeof(tField)/sizeof(int);i++){
    printf("%d",sField[i]);
  }

  return(0);

}

//function
long copyField(long a,long  b,int c){

  //for i < length of sField 

  for(int i=0;i<c;i++){
    /*targetField should be filled with the content
    of sourceField
    */
    a[i]=b[i];
  }

}

你能帮我解决这个问题吗?我现在有点新生了,所以我希望你能帮助我...

1 个答案:

答案 0 :(得分:0)

函数的targetFieldsourceField参数不是数组,您将它们作为数组访问。 此外long未签名,您可能会为其分配过大的值。

试试这个

long copyField(long targetField[], long sourceField[], int length);