Я передаю массив указателей на функцию и изменяю их, но они неожиданно меняются. Это моя основная функция:Передача массива указателей на функцию C
#include <stdlib.h>
#include <stdio.h>
typedef struct {
int x;
int y;
}enemy;
void main() {
enemy* array[5];
function(array);
}
И это функция не работает:
void function(enemy* arr[]){
int b;
for(b=0;b<5;b++)
arr[b]=(enemy*)malloc(sizeof(enemy));
for(b=0;b<5;b++){
arr[b]->x=b;
arr[b]->y=b*16;
printf("%d %d, ", arr[0]->x, arr[0]->y);
}
}
Каждый раз, когда я называю printf
первый указатель массива изменяет свои значения, и я не знаю, почему ,
Отпечатки printf: «0 0, 1 16, 2 32, 3 48, 4 64». Должна ли она печатать все время «0 0»? Это то, чего я ожидал.
и что такое 'maxEnemigosSala'? – wildplasser
Его постоянная константа – Alex
как вы можете изменить значение массива? покажите нам ваш printf или любой другой код – HuStmpHrrr