【发布时间】:2023-05-09 02:14:02
【问题描述】:
我目前正在做一个学校项目。我必须开发一个程序来控制 IP 并开发他的规范。
我被一个双向的char数组困住了。我不知道如何正确退货。
char** extraction_ip(char **ip){
char *ch;
char ipv4 [4][3];
int i = 0;
ch = *ip;
*ipv4 [i]=strtok(ch, ".");
while (ipv4 [i]!= NULL){
i++;
*ipv4 [i]=strtok(NULL, ".");
}
return ipv4;
}
在此之前,我尝试通过创建一个 void 函数来做到这一点: enter image description here
【问题讨论】:
-
通常的做法是: 1. 在调用方法中声明一个变量,并将指向它的指针和大小信息作为参数传递给函数。 2.通过malloc动态分配。无论哪种方式,它都应该是结构而不是原始数组,以便更好地传达含义。
-
这段代码很混乱。主要问题是指向指针的指针不是二维数组,不能指向一个。它只能指向指针数组中的第一项,没有别的。
-
Correctly allocating multi-dimensional arrays 解释了二维数组和基于指针的查找表之间的区别。