Во-первых, я все еще новичок в C и неопытен в программировании. Буду признателен за подробный ответ на ваше решение. Это небольшой дополнительный вопрос из моего предыдущего.
Я хочу сохранить соседний адрес узла и его вес в динамическом массиве, расположенном внутри моего структурного узла:
typedef struct node{
int port;
int ownAddress;
unsigned short *neighAddr;
unsigned int *neighWeight;
unsigned int total_neighs;
struct node *neighbors_array; //unsure about type
} node;
Аргумент командной строки выглядит следующим образом:
./node 8888 1 23:2 46:1 688:92 12:4
Аргументы, разделенные символом «:», могут повторяться бесконечно и представляют собой пару, заданную как соседний адрес: вес. Мне нужно хранить это в массиве.
Вот что у меня есть:
[...]
/* to read neighbourAddress and weight separated by ':' */
int i, neighbourAddress, weight;
for(i = 3; i < argc; ++i){
if(sscanf(argv[i], "%d:%d", &neighbourAddress, &weight) != 2){
fprintf(stderr, "Wrong format. Format must be as follows: int:int.\n");
exit(EXIT_FAILURE);
}
/* store neighbour data in an array */
Как вы можете видеть, я уже получил значения с соседями и адресом веса, но нужно только сохранить его в массиве.