Я пытаюсь написать код для динамического выделения памяти для массива структур.Я хочу передать указатель, связанный с пространством динамической памяти, в другую функцию для дальнейшего использования.Следующий пример кода является грубым примером того, что я хочу сделать (сокращенно для краткости):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/sha.h>
#include <time.h>
struct password_struct;
void create_password(char password_seeds[], struct password_struct* user_passwords);
void main() {
char password_seeds[100];
int num_passwords = 5;
struct password_struct {
char password[17];
char hash[65];
int entropy;
};
struct password_struct *user_passwords = malloc(num_passwords * sizeof(struct password_struct));
create_password(password_seeds, user_passwords);
free(user_passwords);
}
void create_password(char password_seeds[], struct password_struct* user_passwords){
}
Когда я пытаюсь скомпилировать это, я получаю следующую ошибку:
In function ‘main’:
c:24:5: warning: passing argument 2 of ‘create_password’ from incompatible pointer type [enabled by default]
create_password(password_seeds, user_passwords);
^
c:8:6: note: expected ‘struct password_struct *’ but argument is of type ‘struct password_struct *’
void create_password(char password_seeds[], struct password_struct* user_passwords);
^
Появится список одинаковых типов указателей для фактического и ожидаемого типов указателей.Любая помощь будет принята с благодарностью.