Мне нужна помощь в решении этой проблемы. Вот код:C несовместимая ошибка указателя
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
struct Person{
char *name[100];
char *nationality[100];
};
void put_values(struct Person *p, const char *name){
strncpy(p->name, name, 500);
}
int main(int argc, char *argv[]){
struct Person *person = malloc(sizeof(struct Person));
put_values(person, argv[1]);
free(person);
return 0;
}
А вот сообщение об ошибке:
ex17t.c: In function ‘put_values’:
ex17t.c:19:3: warning: passing argument 1 of ‘strncpy’ from incompatible pointer type [enabled by default]
In file included from ex17t.c:4:0:
/usr/include/string.h:131:14: note: expected ‘char * __restrict__’ but argument is of type ‘char **’
Любая помощь или советы будут оценены. Благодаря!
'char * name [100]' подходит для человека с более чем 90 именами. Вы имеете в виду 'char name [100]'. Если вы идете на 200 национальностей, у вас могут быть настоящие «граждане мира»; по моему мнению, всего около 180 национальностей. –
Почему третий аргумент 'strncpy'' 500'? Откуда взялось «500»? – AnT