我正在完成一项练习,其中我想创建一个数组并用随机和无意义的IP地址填充它。
它应该是一个二维array[5][4]
。它是5个地址,每个地址由4个部分组成(即{192,168,0,1}。我的麻烦来自于使用rand()函数只填充数组的一个维度。我无法弄清楚如何在一种方式:
虽然我的主要问题来自下面的for循环for (int o = 0; o < octets; o++)
,但请随时评论我的任何代码,最佳做法等。
#include <stdio.h>
#include <stdlib.h>
int main() {
const int addresses = 5, octets = 4;
int ips[addresses][octets];
for (int a = 0; a < addresses; a++) {
for (int o = 0; o < octets; o++) {
ips[octets] = rand() % 255;
}
}
for (int i = 0; i < addresses; i++) {
for (int j = 0; j < octets; j++) {
printf("%d ", ips[i][j]);
}
putchar('\n');
}
return 0;
}
此代码的编译器错误是......:
ipAddressArray.c: In function 'main':
ipAddressArray.c:18:18: error: incompatible types when assigning to type 'int[(s
izetype)octets]' from type 'int' ps[octets] = rand()%255;
答案 0 :(得分:2)
重写此循环,如
for (int a = 0; a < addresses; a++) {
for (int o = 0; o < octets; o++) {
ips[a][o] = rand() % 255;
}
}