У меня есть этот кусок кода:Инициирование массив неизвестного размера в C
#include <stdio.h>
int average(int array []);
int main() {
int num_array[];
int x = 0;
while(num_array[x] != -1){
printf("Enter a number\n");
scanf("%d",&num_array[x]);
x++;
}
printf("%d\n", average(num_array));
return 0;
}
int average(int array[]){
int i;
int total_size = (int)sizeof(array);
int sum = 0;
for(i = 0; i < total_size; i++){
sum = sum + array[i];
}
return sum/total_size;
}
Но я получаю сообщение об ошибке во время компиляции, потому что я не инициализацией массива. Однако я не могу этого сделать, так как я не знаю, что это размер.
Как я могу это решить?
Используйте 'таНос() 'и' realloc() '. – ForceBru
@ForceBru как? – laker001
@ForceBru, как они сказали, вам нужно использовать 'malloc()' с указателем на массив. 'int * num_array;' затем используйте этот указатель в 'malloc()' –