我有一个带有两个字符数组a
和b
的C程序。
我在此特定行收到运行时错误
a[j] = b[i];// i and j are integers.
这对于两个字符数组是否合法。我觉得是这样的。为什么我会收到错误呢?
编辑:稍后运行此程序没有任何更改就没有错误。我真的不知道怎么做。也许你可以告诉我为什么会发生这种情况。
以下是整个计划:
char *ConvertCodeToHex(char *code)
{
char nibble[4];
char hexvalue[4];
int i;int j=0;int k = 0;
printf("\nCheck2");
for(i=0; i<16; i++) //Goes through each element of the array
{
printf("\nCheck'i'%d", i+1);
if((i+5)%4 == 0)
{
printf("\nCheck'i2'%d", i+1);
hexvalue[k] = BinaryToHex(nibble);
j = 0;
printf("\nCheck'k'%d", 1+k);
k++;
}
printf("\nPre-asstcheck");
nibble[j] = code[i]; //RUN TIME Error
printf("\nPost-asstcheck");
j++;
printf("Assignmentcheck");
}
strncpy(finalhex, hexvalue, 4); //finalhex is a global character array
printf("%s", finalhex);
return finalhex;
}
void main()
{
char arr[16] = {'1','0','1','1','1','1','1','0','0','0','0','1','1','0','0','0'};
printf("Check1");
printf("%s", ConvertCodeToHex(arr));
printf("LastCheck");
}