因此,就像在python列表中一样,我想try 并使用c实现(我对c编程是新手). 这是我的代码
// File name:- list.c
#include <stdio.h>
#include <stdlib.h>
#include "l.h"
int main()
{
int myNumbers[] = {25, 50, 75, 100};
// int length = len(myNumbers);
push(myNumbers, 200, len(myNumbers));
for(int i = 0; myNumbers[i]; i++){
printf("array[%d] = %li\n", i, myNumbers[i]);
};
len(myNumbers);
return 0;
}
// File name:- l.c
#include "l.h"
#include <stdio.h>
int len(int arr[])
{
int i;
for(i = 0; arr[i]!='\0'; i++){
continue;
};
printf("Length is: %d\n", i);
return i;
}
void push(int list[], int value, int length)
{
// int length = len(list);
list[length] = value;
}
上面的代码确实给了我预期的结果,即
Length is: 4
array[0] = 25
array[1] = 50
array[2] = 75
array[3] = 100
array[4] = 200
Length is: 5
而当数组中的值为int myNumbers[] = {25, 50, 75, 100, 125};
或大于4的值时...
结果被赋予意外的随机值,例如:-
Length is: 5
array[0] = 25
array[1] = 50
array[2] = 75
array[3] = 100
array[4] = 125
array[5] = 200
array[6] = 2782528512
array[7] = 1952226512
array[8] = 1
Length is: 9
如何解决此问题? 我甚至try 过直接传递长度,甚至在不传递长度的情况下调用函数,但都不起作用…… 我判断了代码是否有任何逻辑错误,但没有找到任何..
我希望这是我的结果.
Length is: 5
array[0] = 25
array[1] = 50
array[2] = 75
array[3] = 100
array[4] = 125
array[5] = 200
Length is: 6